【问题标题】:Xpath checkbox locatorsXpath 复选框定位器
【发布时间】:2021-03-27 00:37:30
【问题描述】:

我使用 Selenium 进行自动测试,但使用 XPATH 堆栈。

我需要从通讯录中删除用户和组,但我不明白我需要使用哪个定位器 我正在尝试使用不同的 Xpath,但也许你可以告诉我要读什么,因为现在我完全迷路了。

通讯录的HTML:

我尝试过的

driver.findElement(By.xpath("//form[@lastname='Anna']/input")).click();

//table[@id='maintable']/tbody/tr[12]/td[2]

【问题讨论】:

  • 请使用基于文本的 HTML 更新问题,以便从其他贡献者那里获得有效的解决方案。

标签: java selenium xpath css-selectors webdriverwait


【解决方案1】:

您的 XPath 获取隐藏的 form 节点的第一个 input 子节点。尝试更具体的选择器

"//input[@title='Select (testuser Anna)']"

【讨论】:

    【解决方案2】:

    上的click() 对于用户Anna,您可以使用以下任一Locator Strategies

    • cssSelector:

      driver.findElement(By.cssSelector("input[title*='Anna'][alt*='Anna'][type='checkbox']")).click();
      
    • xpath:

      driver.findElement(By.xpath("//input[contains(@title, 'Anna') and contains(@alt, 'Anna')][@type='checkbox']")).click();
      

    理想情况下,click() 在您需要为elementToBeClickable() 诱导WebDriverWait 的元素上,您可以使用以下任一Locator Strategies

    • cssSelector:

      new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input[title*='Anna'][alt*='Anna'][type='checkbox']"))).click();
      
    • xpath:

      new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[contains(@title, 'Anna') and contains(@alt, 'Anna')][@type='checkbox']"))).click();
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-09
      • 2020-03-01
      • 1970-01-01
      • 2015-03-11
      • 2011-05-19
      • 2015-03-03
      • 1970-01-01
      相关资源
      最近更新 更多