Java Selenium WebDriver按部分类名查找元素
在我正在使用的框架中,我有以下元素:Java Selenium WebDriver按部分类名查找元素,java,firefox,selenium,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> 我还尝试了cssSelector: String expectedText =
<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>
我还尝试了cssSelector:
String expectedText = "New session from client IP";
driver.findElement(By.cssSelector("div[class*='"+expectedText+"']")).click();
但是WebDriver不断抛出一个异常,声明它无法定位该元素。关于可能出现的问题有什么建议吗?
By.className
正在查找输入名称的类
By.cssSelector
正在为您输入的选择器查找匹配项
您尝试的是将div
的文本与类
进行匹配,这是行不通的
您可以尝试以下方法:
driver.findElement(By.xpath("//div[contains(text(),'"+expectedText+"')]")).click();
我相信这会奏效:
driver.findElement(By.className("x-grid3-cell-inner x-grid3-col-expRepCol").click();
同样,我们可以得到任何属性值(如类名、id等)部分匹配的元素
你刚刚忘记了div前面的//但是我一纠正就成功了!谢谢大家!@用户215050啊,伙计,你说得对。很抱歉。修好了,没问题。这并不是说你有页面源代码来处理这么少的打字错误,当你无法测试时就可以理解。当
expectedText
包含单引号时,它会抛出一个异常。我试图用反斜杠来摆脱他们,但没有用。有没有办法在expectedText
中使用单引号?@user2150250我发现了这个:-我希望它有用。
driver.findElement(By.className("x-grid3-cell-inner x-grid3-col-expRepCol").click();
<div class="dd algo algo-sr Sr" data-937="5d1abd07c5a33">
<div class="dd algo algo-sr fst Sr" data-0ab="5d1abd837d907">
driver.find_element_by_css_selector("div[class^='dd algo algo-sr']")