2017-05-29 59 views
-2

在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']")) 

它的工作原理。为什么?

+0

您能否考虑更新我们实际上您试图在网页上找到哪个元素?谢谢 – DebanjanB

回答

1

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")); 
+0

谢谢。但它仍然给出同样的错误。 – user2044296

+0

@ user2044296这可能是计时问题,在驱动程序创建后设置隐式等待'driver.manage()。timeouts()。implicitlyWait(10,TimeUnit.SECONDS);' – Guy

0
driver.findElement(By.classname(".bs-container")); 
+0

尽管此代码可能回答问题,如何和/或为什么解决这个问题会提高答案的长期价值。 – Badacadabra

0

尝试以下cssselector

driver.findElement(By.cssSelector(“div.bs-container.btn-group.bootstrap-select.show-tick.show -menu-arrow.open“))

相关问题