r - 在 RSelenium 中打开一个新选项卡

标签 r selenium selenium-webdriver

如何在 RSelenium 中打开新标签页?具体来说,如何指定控制键向窗口发送“CTRL+T”?我尝试:

require(RSelenium)
RSelenium::startServer()
dr = remoteDriver()
dr$open()
b = remDr$findElement(using = 'tag', value = "body")
b$sendKeysToElement(list("CONTROL + T")) #this does not work

最佳答案

RSelenium 有一个键盘键列表,请参阅 ?selKeys

您可以按如下方式在链接上打开一个新标签:

library(RSelenium)
RSelenium::startServer()
dr <- remoteDriver()
dr$open()
dr$navigate("http://www.stackoverflow.com")
# find the Users tab
webElem <- dr$findElement("id", "nav-users")
dr$mouseMoveToLocation(webElement = webElem) # move to the required element
dr$click(2) # right mouse button click 
webElem$sendKeysToElement(list(key = "control", "t")) # open a new tab by sending ctrl+t

Selenium 不支持制表符,但是请参见示例 https://code.google.com/p/selenium/issues/detail?id=5572所以最好在新窗口打开

webElem$sendKeysToElement(list(key = "control", "w"))
> dr$getWindowHandles()
[[1]]
[1] "{64da9f4a-4974-4e11-a078-35785ac31227}"
[2] "{952d4b9c-9955-4233-a048-d2e9b043117c}"

> dr$getCurrentWindowHandle()
[[1]]
[1] "{64da9f4a-4974-4e11-a078-35785ac31227}"

> dr$switchToWindow("{952d4b9c-9955-4233-a048-d2e9b043117c}")
> dr$getCurrentWindowHandle()
[[1]]
[1] "{952d4b9c-9955-4233-a048-d2e9b043117c}"

关于r - 在 RSelenium 中打开一个新选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26559192/

相关文章:

xml - R中的属性值错误中不允许未转义的 '<'

java - 在 Java 中查找网页上文本框的总数 - Selenium

selenium-webdriver - 设置 Jasmine + Webdriver - "cannot use import outside a module"

java - Selenium 如何关闭 Chrome 浏览器并打开新浏览器

r - s+(或 R)中的机器学习库?

r - 按组使用新值完成 data.frame

javascript - 使用 Selenium 从 Javascript 网页派生文本

java - TestNG 多个测试类 - 运行其他类

c# - 通过 GeckoDriver Selenium 和 C# 加载现有 FirefoxProfile 时, 'System.IO.Compression.ZipStorer' 的类型初始值设定项引发异常

R:带有 ngram 标记器和字典的 dtm 在 Ubuntu 中损坏?