【发布时间】:2018-07-13 06:21:20
【问题描述】:
我想构建一个简单的应用程序来学习 Python 中的 Selenium,使用自定义的 google 搜索 url 来搜索 Reddit 并抓取结果: https://cse.google.com/cse/publicurl?cx=011171116424399119392:skuhhpapys8
我正在尝试点击如图所示在网站上搜索后出现的叠加层中的第一个链接
到目前为止:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
url = "https://cse.google.com/cse/publicurl?cx=011171116424399119392:skuhhpapys8"
driver = webdriver.Firefox()
driver.implicitly_wait(30)
driver.get(url)
python_button = driver.find_element_by_class_name('gsc-search-button')
inputElement = driver.find_element_by_id("gsc-i-id1")
soup_level1=BeautifulSoup(driver.page_source, 'lxml')
search = input("Ask Reddit")
inputElement.send_keys(search)
inputElement.send_keys(Keys.ENTER)
overlay = driver.find_element_by_class_name('gsc-results-wrapper-overlay')
first_link = driver.find_element_by_css_selector('a.gsc-title').click()
我得到了错误
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: a.gsc-title
知道我缺少什么吗?我有什么特别的事情要做来处理这样的覆盖吗?该css选择器有多个元素我不是针对第一个吗?
【问题讨论】:
-
快速浏览一下,您可能需要先“激活” iframe,然后再尝试点击它。
-
这样的? WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it(driver.find_element_by_tag_name("iframe")))
-
是的,类似的
标签: python selenium selenium-webdriver