循环访问表格行图像,然后单击超链接



我有一个包含多行(tr(的表,其中包含多个单元格(td(

其中一个单元格包含图像超链接

我会链接以迭代表格行,并使用硒单击包含每行图像的每个单元格。

例如,这是我的一个表:

<table class="thetable" cellspacing="1" >
        <thead></thead>
        <tbody>
           <tr class="visibleRow">

               <td class="Item"></td>
               <td class="modified" style="color: gray;"></td>
               <td class="imageHyperlink">
                  <a href="#" role="button" title="Edit the item">
                       <img src="web/service/editRow.gif" />
                  </a>
                </td>
            </tr>
            <tr class="visibleRow"></tr>
            <tr class="anotherow" style="display: none;"></tr>
            <tr class="visibleRow"></tr>
            <tr class="editorRow" style="display: none;"></tr>
        </tbody>
</table>

我唯一要迭代的行是包含类名visibleRow的行,唯一需要单击的单元格是包含类名的单元格imageHyperlink

我实现了一个 for 循环,该循环遍历具有类 visibleRow 的行,将单元格类名存储在单元格变量中。 ,然后单击单元格:

for row in driver.find_elements_by_css_selector("tr.visibleRow"):
    cell = row.find_elements_by_class_name("imageHyperlink")
    cell.click()

但是我收到此错误,因为该单元格似乎不是可点击的项目:

属性

错误:"列表"对象没有属性"单击">

我该如何解决这个问题?

调用

row.find_elements_by_class_name("imageHyperlink")(注意复数名称元素s(返回一个列表,在您的情况下,该列表将包含零个或一个元素。添加第二级迭代应该可以解决问题:

for row in driver.find_elements_by_css_selector("tr.visibleRow"):
    for cell in row.find_elements_by_class_name("imageHyperlink"):
        cell.find_element_by_tag_name("a").click()

内部循环遍历具有类imageHyperLink的子级;在您的示例中,将有其中之一(对于第一个可见行(或没有(对于其他行(。然后,它会找到第一个<a>子元素并单击它。

相关内容

最新更新