在我正在使用的框架中,我有以下元素:
<div class="x-grid3-cell-inner x-grid3-col-expRepCol"> New session from client IP 192.168.5.3 (ST=/CC=/C=) at VIP 192.168.5.2 Listener /Common/Tomcat (Reputation=Unknown)</div>
以及许多其他类似的元素。我正在尝试通过部分名称文本定位此元素,然后使用以下代码单击它:
String expectedText = "New session from client IP";
driver.findElement(By.className("div[class*='"+expectedText+"']")).click();
我也尝试过使用 cssSelector:
String expectedText = "New session from client IP";
driver.findElement(By.cssSelector("div[class*='"+expectedText+"']")).click();
但是 WebDriver 不断抛出异常,指出它无法找到该元素。关于可能是什么问题的任何建议?
最佳答案
<div class="dd algo algo-sr Sr" data-937="5d1abd07c5a33">
<div class="dd algo algo-sr fst Sr" data-0ab="5d1abd837d907">
以上2是雅虎搜索结果中的HTML元素。所以如果我们想通过 selenium python 使用部分类名来获取这些元素,这里是解决方案。
driver.find_element_by_css_selector("div[class^='dd algo algo-sr']")
以同样的方式,我们可以获得对任何属性值(如类名、id 等)进行部分匹配的任何元素。
find elements with css selector partial match on attribute values
关于java - Selenium WebDriver 按部分类名查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27049514/