簡體   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