[英]Selenium Webdriver get element (Python)
我正在制作一个抓取字典定义的机器人。 它首先到达此站点: LINE Dictonary
我的目标是让机器人点击第一个结果。 但是,如何使用Selenium Webdriver来做到这一点?
这是结果的HTML片段。 但是,如果您想查看所有内容,请访问LINE Dictonary的网站并输入“你好”。 谢谢!
您可以使用以下XPATH:
//div[@id='autocplt_wrap']//descendant::span[@class='word']//a[text()='你好']
搜索以下内容:“你好”后,您可以使用以下代码:
asian_text= WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, "//div[@id='autocplt_wrap']//descendant::span[@class='word']//a[text()='你好']")))
asian_text.click();
请注意,您不能使用linkText,因为锚标签之间存在两个 Web元素,且文本相同。
您需要使用Waits来执行此操作,因为您的元素已隐藏,您可以尝试执行此操作,它将起作用
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Chrome('/usr/local/bin/chromedriver')
driver.get("http://ce.linedict.com/#/cnen/search?query=%E4%BD%A0%E5%A5%BD")
try:
element = WebDriverWait(driver, 20).until(
EC.element_to_be_clickable((By.XPATH, '//*[@id="autocplt_wrap"]/ul[1]/li/span/a[1]'))
)
element.click()
finally:
driver.quit()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.