【发布时间】:2022-01-12 14:18:34
【问题描述】:
我正在尝试让 selenium 执行以下操作:
- 打开网站
- 点击搜索框
- 在搜索框中输入“西雅图”
- 从建议的结果中选择第一个结果
我的代码在第 2 步失败。 搜索框的类 id 是“class= input_search ng-pristine ng-valid ng-empty ng-touched”
这是我的代码:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
url = 'https://wego.here.com/'
driver.get(url)
driver.find_element_by_css_selector('.input_search.ng-pristine.ng-valid.ng-empty.ng-touched').click()
driver.find_element_by_css_selector('.input_search.ng-pristine.ng-valid.ng-empty.ng-touched').send_keys('Seattle')
driver.find_element_by_css_selector('.input_search.ng-pristine.ng-valid.ng-empty.ng-touched').send_keys(Keys.ENTER)
任何建议将不胜感激!
其他问题
感谢@Prophet,我能够完成第一次自动点击和自动填充,但是当我尝试使用不同的搜索框执行相同的任务时,它不喜欢它。请参考我在现有代码中添加的以下代码:
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "button.btn"))).send_keys(Keys.ENTER)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "input.itinerary_item_input_0"))).click() wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "input.itinerary_item_input_0"))).send_keys('Chicago') wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "input.itinerary_item_input_0"))).send_keys(Keys.ENTER)
button.btn 确实有效,但 input.itinerary_item_input_0 无效。这是源截图:
【问题讨论】:
-
首先检查该类是否是唯一的,老实说,永远不要使用那种类型的类,因为它们用于设计,因此它们可能不是唯一的,要么使用元素的 xpath 或 id,如果可用
-
如果我的回答解决了您的问题,请告诉我?
标签: selenium