【问题标题】:Selenium find element inside elementSelenium 在元素中查找元素
【发布时间】:2023-04-10 22:24:02
【问题描述】:

我正在使用 Selenium WebDriver,并且我有一个包含许多行和列的表。每行都有自己的复选框来选择该行。 我需要选择在确切行中的复选框。我在努力

driver.find_element_by_xpath("//td[.='jared124']//[@type='checkbox']")

但它不起作用 html代码是:

<tr class="even">
  <td>
    <input type="checkbox" id="ohrmList_chkSelectRecord_1239" 
             name="chkSelectRow[]" value="1239">
  </td>
  <td class="left">
    <a href="saveSystemUser?userId=1239">jared124</a>
  </td>
</tr>

【问题讨论】:

    标签: jquery html css selenium xpath


    【解决方案1】:

    阅读有关 xpath 后继兄弟、前兄弟、父和祖先的信息。它将帮助您构建 xpath 定位器。 试试下面:

    driver.find_element_by_xpath("//a[contains(text(), 'jared124')]/parent::tr/td[1]/input")
    

    或者您可以使用其值单击复选框:

    driver.find_element_by_xpath("//input[@value='1239']")
    

    【讨论】:

    • driver.find_element_by_xpath("//input[@value='1239']") 工作但不完全是我需要的,我想使用 'jared124' 元素找到复选框。
    • driver.find_element_by_xpath("//a[contains(text(), 'jared124')]/parent::tr/td[1]/input") 让我没有这样的元素:无法定位元素:
    • ("//td[.='jared124']/parent::tr/td[1]/input") 工作正常,感谢您的帮助
    【解决方案2】:

    使用xpath 定位器试试这个答案

    //a[text()='jared124']//preceding::input[@value='1239']
    

    xpath的解释: 使用text方法查找文本为jared124&lt;a&gt;标签,然后继续使用preceding关键字找到带有&lt;input&gt;标签的复选框以及value 属性。

    【讨论】:

    • 您好根据您问题中的这一行。 I need to choose checkbox which is in exact row.。 .我想你应该接受我的回答。因为我已经为您提供了正确的xpath 以及复选框标签名称。
    猜你喜欢
    • 2017-12-03
    • 2012-12-12
    • 1970-01-01
    • 2017-09-12
    • 1970-01-01
    • 1970-01-01
    • 2021-06-07
    • 2012-08-01
    相关资源
    最近更新 更多