browser.get('http://www.google.com')
search = browser.find_element_by_name('q')
search.send_keys("how to search the internet")
search.send_keys(Keys.RETURN) # hit return after you enter search text
time.sleep(5) # sleep for 5 seconds so you can see the results
browser.execute_script("window.scrollTo(0, 873)")
time.sleep(2)
browser.find_element(By.XPATH, '(//h3)[3]/a').click()`
作为我的代码.
发生了什么:去谷歌并键入单词并点击搜索.向下滚动一下,然后单击第一个链接
这个怎么做?
编辑:当我说不必要时,这就是我的意思:
不必要的1:https://imgur.com/a/70qz89x
不必要的2:https://imgur.com/a/8WWvcnC
这些是我想要的唯一结果:
这个:https://imgur.com/a/eTatFV9
解决方法:
根据您的问题,点击谷歌搜索结果随机链接上的(),根据您的代码试用,如果您调用window.scrollTo(0,873),然后调用click(),如下所示:
find_element(By.XPATH, '(//h3)[3]/a').click()`
Selenium仍会尝试在第一场比赛中尝试click(),这可能不是您想要的用例.
解
为了在谷歌搜索结果的随机链接上单击(),您可以从搜索结果中创建一个列表,然后生成一个随机数并通过索引调用click(),如下所示:
>代码块:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import webdriverwait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from random import randint
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
options.add_argument('disable-infobars')
browser=webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\browserDrivers\chromedriver.exe')
browser.get('http://www.google.com')
search = browser.find_element_by_name('q')
search.send_keys("selenium")
search.send_keys(Keys.RETURN)
my_search_list = webdriverwait(browser, 10).until(EC.visibility_of_all_elements_located((By.XPATH, "//h3[@class='r']/a[not(ancestor::div[@class='xIleA'])]")))
myRandomNumber = randint(0, len(my_search_list))
print(myRandomNumber)
my_search_list[myRandomNumber].click()
>控制台输出:
4
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。