如果有多个子标记,则前导兄弟不起作用

问题描述 投票:2回答:1

在这里,为了找到复选框,XPath写成如下。 // td [text()='bbbb vvvvvvvvv'] / preceding-sibling :: td / div / input [@ class ='hidden']

但是没有捕获这个输入。 util“// td [text()='bbbb vvvvvvvvv'] / preceding-sibling :: td / div /”,找到元素。这有什么特别的原因吗?我想知道为什么这个XPath不起作用?

enter image description here

java html selenium selenium-webdriver xpath
1个回答
1
投票

尝试webdriverwait和以下任何选项。

选项1:

WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@name='id' and @type='checkbox']")));
element.click();

选项2:

 WebDriverWait wait = new WebDriverWait(driver, 30);
  WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@name='id' and @type='checkbox']")));
  Actions action=new Actions(driver);
  action.moveToElement(element).click().build().perform();

2选项:

WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement element1 = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@name='id' and @type='checkbox']")));
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();",element1);
© www.soinside.com 2019 - 2024. All rights reserved.