google 使用 selenium 和 python 的自动化

Automation of google with selenium and python

我想自动执行 google 搜索,搜索后点击第一个网站。 以下是步骤: 问题出在第三步,但没有点击给定的link,也没有给出任何错误

  1. 在搜索框中插入值

  2. 单击搜索按钮

  3. 搜索后点击第一个网站或任何网站。 还提供了 daigram,它不仅适用于 yotube 网站,而且动态地适用于任何网站。 如果您有任何解决方案,请提供代码,

     [![attached image is here ][1]][1]from selenium import webdriver
     import time
     from selenium.webdriver.common.keys import Keys
     driver.maximize_window()
     driver.implicitly_wait(20)
     driver.get("https://google.com")
     elem = driver.find_element_by_name("q")
     elem.clear()
     elem.send_keys("youtube")
     elem.send_keys(Keys.RETURN)
     time.sleep(3)
     assert "No results found." not in driver.page_source
     driver.find_element_by_xpath('.//*[@id="rso"]/div[1]/div/div/div/div/h3/a').click()
    

我不确定你为什么要这样做,“搜索后点击第一个网站或任何网站”,但我会尝试点击第一个而不是你的最后一行,使用 xpath link:

from selenium import webdriver
 import time
 from selenium.webdriver.common.keys import Keys
 driver.maximize_window()
 driver.implicitly_wait(20)
 driver.get("https://google.com")
 elem = driver.find_element_by_name("q")
 elem.clear()
 elem.send_keys("youtube")
 elem.send_keys(Keys.RETURN)
 time.sleep(3)
 assert "No results found." not in driver.page_source
 driver.find_element_by_css_selector('div.yuRUbf > a').click()

或者可能更恰当,因为该选择器 returns 所有 10 个搜索结果 links,

from selenium import webdriver
 import time
 from selenium.webdriver.common.keys import Keys
 driver.maximize_window()
 driver.implicitly_wait(20)
 driver.get("https://google.com")
 elem = driver.find_element_by_name("q")
 elem.clear()
 elem.send_keys("youtube")
 elem.send_keys(Keys.RETURN)
 time.sleep(3)
 assert "No results found." not in driver.page_source
 driver.find_elements_by_css_selector('div.yuRUbf > a')[0].click()