我想点击"页面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()