python - Zooqle.com 点击所需的搜索结果
问题描述
我想知道是否有人可以提供帮助
我正在尝试单击与搜索文本匹配的搜索结果:
IE:搜索文本:“第五元素”点击其中包含“第五元素”的结果
使用此代码:
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome(executable_path=r'C:\Users\littl\Downloads\chromedriver_win32\chromedriver.exe')
driver.get("https://zooqle.com/")
popup1 = driver.find_element_by_xpath('//*[@id="anp2-wrapper"]/div/div/div[1]')
popup1.click()
searchbar = driver.find_element_by_xpath('//*[@id="inputSearchTop"]')
searchbar.send_keys("The Fifth Element")
time.sleep(2)
searchbar.find_element_by_xpath('//*[contains(text(), "The Fifth Element")]').click()
但我得到这个元素不是交互式的错误
我究竟做错了什么?
谢谢,
小吉弗
解决方案
处理动态元素的使用WebDriverWait
和跟随xpath
。
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium import webdriver
driver = webdriver.Chrome(executable_path=r'C:\Users\littl\Downloads\chromedriver_win32\chromedriver.exe')
driver.maximize_window()
driver.get("https://zooqle.com/")
wait = WebDriverWait(driver, 10)
wait.until(ec.element_to_be_clickable((By.XPATH, '//div[@id="anp2-wrapper"]//div[text()="NO THANKS"]'))).click()
wait.until(ec.element_to_be_clickable((By.XPATH, '//input[@name="q"]'))).send_keys("The Fifth Element")
element=wait.until(ec.element_to_be_clickable((By.XPATH, '//div[@class="tt-dataset tt-dataset-qs"]//p[@class="tt-wrap tt-suggestion tt-selectable"]//span[text()="The Fifth Element"]')))
element.location_once_scrolled_into_view
element.click()
浏览器快照:
推荐阅读
- python - 所有工作表中所有列的总和
- rule-engine - CodeEffects RuleSets:应用了哪些规则?
- c# - 提取一系列元素(包括元素“包装器”标签)的 XPath 查询是什么?
- python - 如何使用 Pytorch 实现强化学习代理以在不同的时间步执行操作
- cobol - 是否有将 cobol 文件转换为 csv 或 json 的工具
- php - 如何将 foreach 函数与其他函数连接起来?
- javascript - vue slick carousel Uncaught (in promise) TypeError: this.$slots.default is undefined
- r - R - 将 Unix 转换为时间和日期列
- node.js - 无法获取_id mongodb
- reactjs - 在辅助函数中使用钩子