我如何使用python硒单击带有下拉列表的导航栏



我想点击"页面1"显示子菜单列表 我使用的蟒蛇代码

driver.find_element_by_xpath("nav/div/ul/li[2]/a").click()


网站代码:

<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Page 1
<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Page 1-1</a></li>
<li><a href="#">Page 1-2</a></li>
<li><a href="#">Page 1-3</a></li>
</ul>
</li>
<li><a href="#">Page 2</a></li>
<li><a href="#">Page 3</a></li>
</ul>

导航的图像

由于您的要求是">我想单击"第 1 页"以显示子菜单列表"。

不使用绝对xpath,您可以使用linkText

parent_page1 = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.LINK_TEXT, "Page 1")))  
parent_page1.click()  

如果此链接文本不适合您,您可以使用相对 xpath :

parent_page1 = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//a[@class='dropdown-toggle' and contains(text(),'Page 1')]")))  
parent_page1.click()  

请注意,此代码将单击第 1 页,当且仅当它是可点击的。

如果是悬停操作,则可以继续操作链

注意:这是针对父页面1的。不适合孩子。并基于您尝试过的 XPathnav/div/ul/li[2]/a

您的 x 路径不正确。 任何 x 路径都以/或//开头。这可能是问题所在。

尝试使用 X 路径//nav/div/ul/li[2]/a

在代码中,

driver.find_element_by_xpath("//nav/div/ul/li[2]/a").click()

我猜,您正在使用 w3school 引导导航栏。如果是,则页面在框架内,因此首先您需要切换到如下所示的框架。

driver.switch_to_frame("iframeResult")
driver.find_element_by_xpath("//nav/div/ul/li[2]/a").click()

相关内容

  • 没有找到相关文章

最新更新