[英]How to click on the list of the <a> elements in an <ul> and <li> elements with selenium using python?
[英]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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.