【问题标题】:why it is required to open google home page from chrome browser to enter search from selenium为什么需要从 chrome 浏览器打开 google 主页才能进入 selenium 搜索
【发布时间】:2018-01-19 00:56:56
【问题描述】:

我对我的代码有疑问。为什么需要打开谷歌网页才能在 selenium 中搜索某些内容。为什么我们不能直接从 chrome 浏览器搜索。下面是我的代码

from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
chrome_options=webdriver.ChromeOptions()
chrome_options.add_argument("--disable-infobars")
browser=webdriver.Chrome('C:/Users/chromedriver.exe',chrome_options=chrome_options)
page=browser.get('http://www.google.com')
search=browser.find_element_by_name('q')
search.send_keys('aditya')
search.send_keys(Keys.RETURN)
time.sleep(5)

为什么需要 page=browser.get('http://www.google.com') 行。我反正使用浏览器发送密钥为什么需要页面?

【问题讨论】:

  • 如果你开发了代码,那么你应该更清楚为什么page=browser.get('http://www.google.com)。 SeleniumHQ 网站有很好的文档。对于初学者来说,这是一个很好的起点。
  • 我不是自己开发的,是在 S.O 得到的

标签: python selenium


【解决方案1】:

当你第一次实例化一个新的浏览器驱动时,它只是一个空白的浏览器。您需要先导航到 URL,然后才能与该页面上的任何对象进行交互。在您的情况下,您正在尝试进行谷歌搜索,因此您必须先导航到该页面,然后才能找到搜索元素。

不过,您不必将其分配给 page 变量。你应该可以写:

browser.get('http://www.google.com')

【讨论】:

  • 那为什么我在浏览器中找到名称 'q' 而不是代码 browser.find_element_by_name('q') 中的 google 页面
  • 我相信当您的代码执行时您仍在导航到 google 页面,并且页面中放置了任何返回值,但并未使用该页面。浏览器仍在谷歌上,所以当你从浏览器对象中查找元素时,find_element_by_name('q') 是有效的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 1970-01-01
  • 1970-01-01
  • 2021-09-29
  • 2017-07-26
  • 2017-01-13
  • 1970-01-01
相关资源
最近更新 更多