在我使用的框架中,我有以下元素:
<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一直抛出一个异常,说它无法找到那个元素。有什么建议吗?
3条答案
按热度按时间9q78igpj1#
上面的两个是雅虎搜索结果中的HTML元素。所以如果我们想用selenium python的一个部分类名来得到这些元素,这里有一个解决方案。
以同样的方式,我们可以获得任何元素,这些元素在任何属性值上都有部分匹配,如类名,id等。
使用css选择器查找属性值部分匹配的元素:
ih99xse12#
By.className
正在查找具有输入名称的类。By.cssSelector
正在为您输入的选择器查找匹配项。您尝试的是将
div
的文本与class
进行匹配,但这不会起作用。你可以试试这样的方法:
ffscu2ro3#
我相信这会起作用: