我试图单击仅包含名称的复选框。
这是HTML:
<td class="checkbox-column"><input type="checkbox" name="link-active[138]"></td>
这是我最近一次尝试查找元素的尝试,我尝试了很多不同的方法。我还需要没有“ [127]”部分来抓住它,因为在这种情况下这是动态的。
driver.findElement(By.xpath("//*[text()[contains(.,'link-active')]]")).click();
答案 0 :(得分:1)
您使用了错误的xpath,正确的xpath是:
driver.findElement(By.xpath("//*[contains(@name,'link-active')]")).click();
答案 1 :(得分:0)
您需要检查名称属性。
driver.findElement(By.xpath("//*[contains(@name,'link-active')]")).click();
答案 2 :(得分:0)
xpath具有名称属性方法,您可以尝试
driver.findElement(By.xpath("//*[contains(name(),'link-active')]")).click();
答案 3 :(得分:0)
您可以简单地引入webdriverwait
来让脚本知道它是可见的并已启用,然后您可以尝试单击。像这样:
new WebDriverWait(driver,10).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[contains(@name,'link-active')]"))).click();