有什么方法可以在Selenium的浏览器URL中键入字符?

时间:2019-05-20 13:58:52

标签: python selenium

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

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

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

我使用Chrome驱动程序,并且版本为macOS Mojave上的Python 3.7和Selenium 3.141.0。


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

3 个答案:

答案 0 :(得分:0)

您可以使用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')

答案 1 :(得分:0)

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

library(dplyr, warn.conflicts = FALSE)
x <- tibble("a" = 1:3, "b" = 4:6)
f <- function(y){2L * y}

## The problem:
x %>% mutate_at(vars(c("a")), list(x = f))
#> # A tibble: 3 x 3
#>       a     b     x
#>   <int> <int> <int>
#> 1     1     4     2
#> 2     2     5     4
#> 3     3     6     6

# manual solution
x %>% mutate_at(c(a = "a"), list(x = f))
#> # A tibble: 3 x 3
#>       a     b   a_x
#>   <int> <int> <int>
#> 1     1     4     2
#> 2     2     5     4
#> 3     3     6     6

# solution using helpers:
x %>% mutate_at(tidyselect::vars_select(names(.), contains("a")), list(x = f))
#> # A tibble: 3 x 3
#>       a     b   a_x
#>   <int> <int> <int>
#> 1     1     4     2
#> 2     2     5     4
#> 3     3     6     6

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

答案 2 :(得分:-1)

没有导入其他库就无法在搜索栏中键入内容,但是如果您要搜索某些内容,则可以使用driver.get(“ documentation” +搜索查询)

示例:

from selenium import webdriver

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