java - Selenium WebDriver 按部分类名查找元素

标签 java firefox selenium selenium-webdriver

在我正在使用的框架中,我有以下元素:

<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/

相关文章:

java - Projections.count() 和 Projections.countDistinct() 都产生相同的查询

java - 根据 RFC 3986 的无效 URI 示例

html - 如何去除div的轻微白边?

javascript - 使用 Firefox 扩展从网站保存文本,保存了错误的字符

html - 通过css在打印中将标题添加到html页面

java - 测试 applicationContext : org. springframework.core.annotation.AnnotationUtils.getAnnotationAttributes

Java Play2.3 : object controllers. map 不是值

javascript - Protractor - 无法通过CSS获取嵌套元素

java - 如何使用 selenium webdriver 和 java 通过匹配文本模式从下拉列表中选择选项

java - 元素退出循环时不再附加到 DOM 命令持续时间或超时 : 21 milliseconds,