【问题标题】:Click doesn't work on locate dynamic element which is in table单击不适用于查找表中的动态元素
【发布时间】:2017-12-05 13:52:23
【问题描述】:

这样使用 self.browser.find_element_by_xpath(".//td[text() = 'image 2']/following-sibling::td/input") 我可以找到这个输入element,但是当我想点击它时,它不起作用。

<div class="animationImage">
  <table class="animationTab">
   <tbody>
     <tr>
      <td class="deign_tab">Image List</td>
      <td class="deign_tab" style="padding-left:30px;text-align:center;">Select</td>
     </tr>
     <tr>
      <td>image 2</td>
     <td>
        <input type="checkbox" id="d6dea005-1b58-4890-8ea6-d561b30ba8c8" checked="checked">
     </td>
     </tr>
  </tbody>
 </table>
</div>

【问题讨论】:

  • 到目前为止你尝试了什么?您应该在问题中包含您的尝试,请阅读指南:stackoverflow.com/help/how-to-ask
  • 流量内容是我的尝试。但它不起作用。 #self.browser.find_element_by_xpath(".//table[@class='animationTab']/tbody/tr[2]/td[2]/input").click() #self.browser.find_element_by_css_selector("table. animationTab>tbody>tr[2]>td[2]>input").click()
  • 如果你有find_element_by_css_selector 为什么没有find_element_by_css_selector ('#d6dea005-1b58-4890-8ea6-d561b30ba8c8')
  • id 是动态的。它可以改变。@fodma1
  • 我不确定可用于 Selenium 的 css 语法,但括号不能确定。试试下面的选择器:table.animationTab&gt;tbody&gt;tr:nth-child(2)&gt;td:nth-child(2)&gt;input

标签: python selenium


【解决方案1】:

您可以像这样使用输入标签简单地定位复选框元素, //输入[@id='d6dea005-1b58-4890-8ea6-d561b30ba8c8']

或者如果你必须参考表格来访问它,那么 //table[@class='animationTab']/tbody/tr[2]/td[2]/input

【讨论】:

  • 我用了你说的方法。但它不起作用。 id 是动态的。 @Parry
猜你喜欢
  • 1970-01-01
  • 2018-05-11
  • 1970-01-01
  • 2015-03-14
  • 2021-05-07
  • 2011-12-19
  • 2017-07-05
  • 2022-01-10
  • 2015-01-29
相关资源
最近更新 更多