繁体   English   中英

Selenium Webdriver get元素(Python)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM