如何单击动态加载的链接?

时间:2014-11-23 05:40:49

标签: python selenium automation

我目前正在通过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标签与之交互时,它会点击更改div的URL锚点,以便点击的标签具有“tabon”属性。硒如何模仿这个?

编辑:我忽略了注意“带有”tabon“的课程的页面标题是单独的粗体标记。

2 个答案:

答案 0 :(得分:1)

尝试使用此代码,以防网页上显示“我的信息”标签:

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

这会点击标记为“a”的元素,并将我的信息确定为innerHTML /文本。

答案 1 :(得分:0)

您需要点击不在a上的div代码以及解决方案 Subh ,但前提是您可以使用.taboff a作为{{1} }}。此选择器会引导您从粘贴的cssselector

的第二个a转到td标记