复合类的CssSelector失败,可能是什么原因?
在www.parcelhero.com我试图捕获以下 Webelement:使用复合类的CssSelector失败,可能是什么原因?
driver.findElement(By.cssSelector("bs-container.btn-group.bootstrap-select.show-tick.show-menu-arrow.open"));
<div class="bs-container btn-group bootstrap-select show-tick show-menu-arrow open" style="top: 315.2px; left: 241px; width: 179px;">
但是我却越来越
“没有这样的元素:无法找到元素:{“method”:“css selector”,“selector”:“bs-container.btn-group.bootstrap-select.show-tick.show-menu-arrow.open”}“
但是,如果使用
driver.findElement(By.xpath("//div[@class='bs-container btn-group bootstrap-select show-tick show-menu-arrow open']"))
它的工作原理。为什么?
bs-container
也是一类
By.cssSelector("bs-container") // without dot
意味着你正在寻找的元素标签<bs-container>
By.cssSelector(".bs-container") // with dot
意味着你正在寻找bs-container
类的元素。
使用
driver.findElement(By.cssSelector(".bs-container.btn-group.bootstrap-select.show-tick.show-menu-arrow.open"));
谢谢。但它仍然给出同样的错误。 – user2044296
@ user2044296这可能是计时问题,在驱动程序创建后设置隐式等待'driver.manage()。timeouts()。implicitlyWait(10,TimeUnit.SECONDS);' – Guy
driver.findElement(By.classname(".bs-container"));
尽管此代码可能回答问题,如何和/或为什么解决这个问题会提高答案的长期价值。 – Badacadabra
尝试以下cssselector
driver.findElement(By.cssSelector(“div.bs-container.btn-group.bootstrap-select.show-tick.show -menu-arrow.open“))
您能否考虑更新我们实际上您试图在网页上找到哪个元素?谢谢 – DebanjanB