首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用selenium webdriver的python

使用selenium webdriver的python
EN

Stack Overflow用户
提问于 2021-04-18 10:09:24
回答 1查看 58关注 0票数 2

我正在尝试打开“数字键”网站,并使用搜索栏发送一些数据。以下是代码的一个示例,但看起来发送键不起作用。我需要帮助。谢谢。

代码语言:javascript
复制
import time
from openpyxl import load_workbook
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome(executable_path='C:/Users/amuri/AppData/Local/Microsoft/WindowsApps/PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0/site-packages/chromedriver.exe')
driver.implicitly_wait(3)

url ='https://www.digikey.com/'
driver.get(url)
print(driver.title)
elem = driver.find_element_by_xpath("/html/body/header/div[2]/div[1]/div/div[2]/div[2]/input")
elem.click()
elem.send_keys("myString")
print(elem.text)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-18 10:50:11

对于elem,使用css选择器,而不是长xpath:

代码语言:javascript
复制
elem = driver.find_element_by_css_selector("#main-layout-content .header__searchinput")

header__searchinput类不是唯一的,这就是我使用main-layout-content id作为父类的原因。

还要添加显式等待:

代码语言:javascript
复制
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

wait = WebDriverWait(driver, timeout=30)
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#main-layout-content .header__searchinput")))
elem = driver.find_element_by_css_selector("#main-layout-content .header__searchinput")
elem.click()
elem.send_keys("myString")
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67144615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档