Java 如果存在多个子标记,则前面的同级不起作用

Java 如果存在多个子标记,则前面的同级不起作用,java,html,selenium,selenium-webdriver,xpath,Java,Html,Selenium,Selenium Webdriver,Xpath,在这里,为了定位复选框,XPath编写如下。 //td[text()='bbbb vvv']/previous sibling::td/div/input[@class='hidden'] 但是这个输入没有被捕获。util”//td[text()='bbbb vvvv']/前面的同级::td/div/“,元素位于。有什么特别的原因吗?。 我想知道为什么这个XPath不起作用 尝试webdriverwait和以下任何选项 选项1: WebDriverWait wait = new WebDrive

在这里,为了定位复选框,XPath编写如下。 //td[text()='bbbb vvv']/previous sibling::td/div/input[@class='hidden']

但是这个输入没有被捕获。util”//td[text()='bbbb vvvv']/前面的同级::td/div/“,元素位于。有什么特别的原因吗?。 我想知道为什么这个XPath不起作用


尝试webdriverwait和以下任何选项

选项1:

WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@name='id' and @type='checkbox']")));
element.click();
 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();
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);
选项2:

WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@name='id' and @type='checkbox']")));
element.click();
 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();
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);
选项3:

WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@name='id' and @type='checkbox']")));
element.click();
 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();
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);

谢谢。但您能解释一下为什么输入标记不能以通常的方式定位到Xpath中吗?。因为那个标签没有关闭吗?。标签是这样的,只是并没有像你们想的那个样结束。