首页 > 解决方案 > 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()

但我得到这个元素不是交互式的错误

我究竟做错了什么?

谢谢,

小吉弗

标签: pythonselenium

解决方案


处理动态元素的使用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()

浏览器快照:

在此处输入图像描述


推荐阅读