Zooqle.com点击所需的搜索结果

时间:2019-08-11 10:04:21

标签: python selenium

我想知道是否有人可以帮助

我试图单击与搜索文本匹配的搜索结果:

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()

但是却收到该元素不具有交互性的错误

我在做什么错?

谢谢

littlejiver

1 个答案:

答案 0 :(得分:1)

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

浏览器快照:

enter image description here

相关问题