我是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结构。