如何让Selenium切换到页面上的另一个活动选项卡



我是Python的新手,需要一些帮助。

我使用Python Selenium-Chrome来提取数据,并且需要我的Python脚本能够在网页上显示为选项卡的选项之间切换。

尝试了多种方法让浏览器识别并单击我需要切换到的选项卡,但没有发生,并且显示了我想在该选项卡上填充的字段的错误:

<div id="tabbed-nav">            
<ul>
<li><a>Diary Number</a></li>
<li><a>Case Number</a></li>
<li><a>Party Name</a></li>
<li><a>AOR</a></li>
<li><a>Court / Tribunal</a></li>
归档缺陷 -->
<li><a>Free Text</a></li>
</ul>          
<div>

以下是我试图让脚本点击选项卡的两种方法,由于某种原因,无法工作

Object.find_element_by_xpath("//*[@id='tabbed-nav']/ul[1]/li[3]").click()
Object.find_element_by_xpath("//div[@id='tabbed-nav']/ul/li/a[.="Party Name"]').click()

在分析您的两次尝试之前,让我粘贴有问题页面的当前(简化(DOM树,以供将来参考:

<div id="tabbed-nav">
<ul class="z-tabs-nav z-tabs-mobile">
<li><a><span class="z-title">Diary Number</span><span class="z-arrow"></span></a></li>
</ul>
<i class="z-dropdown-arrow"></i>
<ul class="z-tabs-nav z-tabs-desktop">
<li class="z-tab z-first z-active" data-link="tab1"><a class="z-link">Diary Number</a></li>
<li class="z-tab" data-link="tab2"><a class="z-link">Case Number</a></li>
<li class="z-tab" data-link="tab3"><a class="z-link">Party Name</a></li>
<li class="z-tab" data-link="tab4"><a class="z-link">AOR</a></li>
<li class="z-tab" data-link="tab5"><a class="z-link">Court / Tribunal</a></li>
<li class="z-tab z-last" data-link="tab6"><a class="z-link">Free Text</a></li>
</ul>
<div class="z-container">
<!-- skipped -->
</div>
</div>

现在分析你的两次尝试:

尝试1次

Object.find_element_by_xpath("//*[@id='tabbed-nav']/ul[1]/li[3]").click()

//*[@id='tabbed-nav']中有两个ul标签,第一个用于移动版页面,第二个用于桌面版页面。您正在选择只包含一个<li>标签的第一个标签(/ul[1](,而您正在要求第三个标签。这就是为什么没有找到元素。

尝试2次

Object.find_element_by_xpath("//div[@id='tabbed-nav']/ul/li/a[.="Party Name"]').click()

这几乎是正确的!"'只是一团糟。带有xpath的正确字符串如下:

Object.find_element_by_xpath("//div[@id='tabbed-nav']/ul/li/a[.='Party Name']").click()

这适用于当前的DOM结构。

相关内容

  • 没有找到相关文章

最新更新