【问题标题】:How do I click on a dynamically loaded link?如何点击动态加载的链接?
【发布时间】:2014-11-23 05:40:48
【问题描述】:

我目前正在通过 Selenium 进行网络自动化。

我有一个 html 文件,其中相关部​​分是这样的:

<table>
    <tbody>
        <tr>
            <td class="tabon" nowrap="">
                <div class="tabon">
                    <a id="tab" href="(long dynamically generated string)">
                        <b>Main Page</b>
                    </a>
                </div>
            </td>
            <td class="taboff" nowrap="">
                <div class="taboff">
                    <a id="tab" href="(another long string)">Info</a>
                </div>
            </td>
        </tr>
    </tbody>
</table>

我希望能够访问第二个选项卡。使用 Selenium 我实际上无法“单击” div 标签。

    try:
        browser.find_element_by_xpath(
            '//table/tbody/tr/td[2]/div/a').click()
    except NoSuchElementException:
        print ('error')

这总是会导致错误。这与以下事实有关:当与 div 标签交互时,它会单击 URL 锚点,该锚点会更改 div 以使单击的标签具有“tabon”属性。 Selenium 如何模仿这一点?

编辑:我忽略了带有“tabon”的类在单独的粗体标记中具有页面标题。

【问题讨论】:

  • 网页上的“信息”标签是否可见?
  • 看起来你想点击“我的信息”标签。我说的对吗?
  • 是的。示例代码并不能完美地反映实际网站。

标签: python selenium automation


【解决方案1】:

试试这个代码,以防网页上出现“我的信息”标签:

browser.find_element_by_xpath("//a[.='My Info']").click()

这将点击带有标签“a”的元素,并且具有确切的 innerHTML/text 作为我的信息

【讨论】:

    【解决方案2】:

    你需要通过点击a标签而不是div,除了解决方案Subh,你可以使用.taboff a作为cssselector。此选择器将您从粘贴的html 的第二个td 带到a 标记

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-27
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2015-05-30
      相关资源
      最近更新 更多