【问题标题】:Is there any way to type characters in the browser URL in Selenium?有没有办法在 Selenium 的浏览器 URL 中输入字符?
【发布时间】:2019-05-21 05:34:27
【问题描述】:

我正在寻找一种在浏览器 URL 栏中输入字符串而不发送返回键的方法。我只想在那里显示字符串,因为没有其他地方可以将我自己的字符串描述添加到窗口中。

但是,我找不到任何方法来定位地址栏并输入内容。获取地址栏的唯一方法是驱动程序的 current_url 属性,但它只返回当前 URL。

是否可以在 Selenium 上获取地址栏并输入内容?

我使用 Chrome 驱动,版本是 Python 3.7 和 macOS Mojave 上的 Selenium 3.141.0。


我之所以要显示它是因为我必须在浏览器窗口中选择并保存一张图片,但同时我需要我的描述来选择要保存的图片。去终端输出阅读描述然后返回浏览器选择图像非常繁琐,这就是为什么我想在地址栏上显示它。

【问题讨论】:

  • 我认为你做不到。还有其他选项,例如向浏览器发送密钥以选择地址栏,然后为 url 发送密钥,但这不会通过 selenium 完成
  • 您想在 URL 栏中输入文本来标记图片?您是否考虑将文本添加到屏幕截图的名称中?您还可以在将屏幕截图保存到磁盘并添加文本后对其进行编辑。您可以将文本添加到图片的元数据等中。
  • @JeffC 我想根据描述的内容手动选择并保存图像,但如果 Selenium 可以等待我的操作并将它们自动保存到磁盘会很好(我认为据我所知,这是不可能的)。
  • 所以您正在浏览一个包含大量图片的网站,并且您想根据页面上的描述保存一张图片?我很困惑,因为这似乎是一个与您当前的问题完全不同的问题(在 cmets 中)。这听起来可能是XY problem。请编辑您的问题并描述您尝试解决的问题,而不是您选择调查的潜在解决方案所遇到的问题。
  • @JeffC 没错,虽然描述是我要准备的。最好在地址栏上显示描述,而不是在终端和 Selenium 浏览器之间返回和强制。

标签: python selenium


【解决方案1】:

如果不导入另一个库,就无法在搜索栏中输入内容,但如果您想搜索内容,可以使用 driver.get("https://www.google.com/search?q="+Search Query)

例子:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.google.com/search?q="+SEARCH QUERY)

【讨论】:

  • 这如何回答这个问题?问题是如何在浏览器 URL 框中键入而不导航到 URL?
【解决方案2】:

您可以使用 python 的内置功能来实现这一点。 以下是您可以使用的 sendkeys 命令列表:

https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/windows-scripting/8c6yea83(v=vs.84)

import win32com.client as comctl
w = comctl.Dispatch('WScript.Shell')

# Switch to Chrome
w.activate('Chrome')
# Crl+L to activate address bar
w.sendkeys('^l')

w.sendkeys('whatever string you want to show up in address bar here')

【讨论】:

  • 那可没那么容易。我建议在谷歌上搜索“发送密钥 python mac”,有一些丑陋的解决方案,但几乎没有那么优雅。
【解决方案3】:

您可以使用 driver.get 并为您的笔记添加书签....

driver.get("https://yourwebsite.com/yourwebpage.htm#" + yournote)

您还可以执行 javascript 来更改页面的标题,或在页面顶部添加一个 div。

【讨论】:

  • 这不是发送新请求吗?
  • 我认为它会,是的,但你会在同一页上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-05
  • 1970-01-01
  • 1970-01-01
  • 2020-06-17
  • 2021-11-08
相关资源
最近更新 更多