繁体   English   中英

如何在 python 中使用 Selenium 在 ul 中单击 li?

[英]How do I click an li inside a ul using Selenium in python?

我想在这个网站上点击“国家数据”: https : //dataunodc.un.org/GSH_app使用 Python 中的 Selenium 包。

我试图这样做,但它不起作用。 有人可以帮我吗?

driver.get("https://dataunodc.un.org/GSH_app")

html_list = driver.find_element_by_class_name("nav navbar-nav")
all_li = elem.find_elements_by_tag_name("li")```


该元素在 iframe 中可用。您必须先切换到 iframe。然后单击链接National Data

Induce WebDriverWait and frame_to_be_available_and_switch_to_it () Induce WebDriverWait and element_to_be_clickable () 和跟随XPATH

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get("https://dataunodc.un.org/GSH_app")
WebDriverWait(driver,15).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@src='https://unodc.shinyapps.io/GSH_App/']")))
WebDriverWait(driver,5).until(EC.element_to_be_clickable((By.XPATH,'//ul[@class="nav navbar-nav"]//a[text()="National Data"]'))).click()

或者您可以使用以下 CSS 选择器。

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get("https://dataunodc.un.org/GSH_app")
WebDriverWait(driver,15).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe[src='https://unodc.shinyapps.io/GSH_App/']")))
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,'ul.nav.navbar-nav a[data-value="National Data"]'))).click()

浏览器快照: 在此处输入图片说明


要单击所有复选框,请尝试使用此代码。

allchekbox=WebDriverWait(driver,5).until(EC.visibility_of_all_elements_located((By.XPATH,"//input[@name='YearVar' and not(@checked='checked')]")))
print(len(allchekbox))

for item in allchekbox:
    item.click()

Selenium Python - 点击里面的链接<li><div id="text_translate"><p>这是一个非常独特的情况,我无法解决。 登录网站后,我想要我的代码 go 并单击左侧菜单栏中具有以下元素的时间之一:</p><pre> &lt;hr&gt; &lt;span class="hide-on-toggle" style="color: #225515;margin-left:10px;"&gt;GO&lt;/span&gt; &lt;br&gt; &lt;li class="hide-on-toggle jizzzHidden"&gt; &lt;a href="/JIZZZ" target="_blank"&gt; &lt;span class="fa-stack fa-lg"&gt; &lt;i&gt;&lt;img src="/resource/153270/images/logo.png"&gt; &lt;/i&gt; &lt;/span&gt;JIZZZ &lt;/a&gt; &lt;/li&gt; &lt;li class="hide-on-toggle"&gt; &lt;a href="https://login.html?serviceIier" target="_blank"&gt; &lt;span class="fa-stack fa-lg"&gt; &lt;i class="fa fa-desack-1x "&gt;&lt;/i&gt; &lt;/span&gt; joozz &lt;/a&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;/div&gt;</pre><p> 所以这是我到目前为止的代码</p><pre>from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.keys import Keys from selenium.webdriver.support import expected_conditions from selenium.webdriver.support.select import Select from selenium.webdriver import ActionChains driver = webdriver.Chrome() driver.get("https://Login") username = driver.find_element_by_id("username") username.clear() username.send_keys("etggrgrw.") password = driver.find_element_by_name("password") password.clear() password.send_keys("xxxx") driver.find_element_by_name("login").click() driver.find_element_by_xpath("//span[text()='JIZZZ']").click();</pre><p> 我收到以下错误:</p><pre> selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//span[text()='JIZZZ']"}</pre><p> 我也试过</p><pre>driver.find_element_by_XPath("//*[@id=menu]/li[9]/a").Click()</pre><p> 但出现以下错误:</p><pre> AttributeError: 'WebDriver' object has no attribute 'find_element_by_XPath'</pre><p> 我迷路了,感谢任何帮助。</p></div></li>

[英]Selenium Python - click on a link inside <li > <a herf

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何点击<a>元素</a>列表<ul><a>和</a><li><a>元素与硒使用python?</a> 我们如何访问嵌入在 ul 和 li 标签中的锚标签链接,以使用 selenium 和 python 打开与该标签关联的链接 如何点击列表中的<li>中的元素<ul> python中含有硒的元素? 如何点击<li>内的元素<ul>使用 Python3 和 Selenium 的列表框?</ul></li> 如何获得列表<li>中的元素<ul>使用 Python 使用 Selenium?</ul></li> 我怎样才能得到第10项<li>中的元素<ul>使用 Selenium 使用 Python?</ul></li> Selenium Python - 点击里面的链接<li><div id="text_translate"><p>这是一个非常独特的情况,我无法解决。 登录网站后,我想要我的代码 go 并单击左侧菜单栏中具有以下元素的时间之一:</p><pre> &lt;hr&gt; &lt;span class="hide-on-toggle" style="color: #225515;margin-left:10px;"&gt;GO&lt;/span&gt; &lt;br&gt; &lt;li class="hide-on-toggle jizzzHidden"&gt; &lt;a href="/JIZZZ" target="_blank"&gt; &lt;span class="fa-stack fa-lg"&gt; &lt;i&gt;&lt;img src="/resource/153270/images/logo.png"&gt; &lt;/i&gt; &lt;/span&gt;JIZZZ &lt;/a&gt; &lt;/li&gt; &lt;li class="hide-on-toggle"&gt; &lt;a href="https://login.html?serviceIier" target="_blank"&gt; &lt;span class="fa-stack fa-lg"&gt; &lt;i class="fa fa-desack-1x "&gt;&lt;/i&gt; &lt;/span&gt; joozz &lt;/a&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;/div&gt;</pre><p> 所以这是我到目前为止的代码</p><pre>from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.keys import Keys from selenium.webdriver.support import expected_conditions from selenium.webdriver.support.select import Select from selenium.webdriver import ActionChains driver = webdriver.Chrome() driver.get("https://Login") username = driver.find_element_by_id("username") username.clear() username.send_keys("etggrgrw.") password = driver.find_element_by_name("password") password.clear() password.send_keys("xxxx") driver.find_element_by_name("login").click() driver.find_element_by_xpath("//span[text()='JIZZZ']").click();</pre><p> 我收到以下错误:</p><pre> selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//span[text()='JIZZZ']"}</pre><p> 我也试过</p><pre>driver.find_element_by_XPath("//*[@id=menu]/li[9]/a").Click()</pre><p> 但出现以下错误:</p><pre> AttributeError: 'WebDriver' object has no attribute 'find_element_by_XPath'</pre><p> 我迷路了,感谢任何帮助。</p></div></li> Python selenium 将 li 添加到 ul 如何在 Python 中使用 Selenium 单击下拉列表的 li 元素^ 如何使用带有Python的Selenium Webdriver从ul li下拉列表中获取所有选项?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM