【问题标题】:How to open a tab in safari using Selenium in Java如何在 Java 中使用 Selenium 在 Safari 中打开选项卡
【发布时间】:2020-01-02 03:43:06
【问题描述】:

我一直在尝试通过 Selenium 在浏览器中打开标签,并且似乎可以在除 Safari 之外的所有浏览器中使用。

我正在尝试以下方法:

public void openNewTab(String url) {
  ((JavascriptExecutor) getWebDriver()).executeScript("window.open('" + url + "','_blank');");
}

我在其他语言中看到了一些传递 --legacy 参数的答案,但不是 Java 的等价物。

有什么提示吗?

更新

一些相关的答案包括:

这是我通过 SauceLabs 在以下操作系统上尝试代码时遇到的错误:

  • Mac 10.13
  • Mac 10.14
  • iPad Pro(12.9 英寸)模拟器

    org.openqa.selenium.InvalidArgumentException:请求正文不包含必需的参数“句柄”。 构建信息:版本:'3.14.0',修订:'aacccce0',时间:'2018-08-02T20:13:22.693Z' 系统信息:主机:'itako4501.prod.miso',ip:'fe80:0:0:0:ca0:e26a:55bf:fecd%en0',os.name:'Mac OS X',os.arch:' x86_64',os.version:'10.14',java.version:'9.0.4' 驱动程序信息:驱动程序版本:未知 命令持续时间或超时:0 毫秒 在 java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) 在 org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214) 在 org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166) 在 org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40) 在 org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80) 在 org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44) 在 org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552) 在 org.openqa.selenium.remote.RemoteWebDriver$RemoteTargetLocator.window(RemoteWebDriver.java:903)

    原因:org.openqa.selenium.InvalidArgumentException:请求正文不包含必需的参数“句柄”。 构建信息:版本:'3.14.0',修订:'aacccce0',时间:'2018-08-02T20:13:22.693Z' 系统信息:主机:'itako4501.prod.miso',ip:'fe80:0:0:0:ca0:e26a:55bf:fecd%en0',os.name:'Mac OS X',os.arch:' x86_64',os.version:'10.14',java.version:'9.0.4' 驱动程序信息:驱动程序版本:未知 构建信息:版本:'3.141.59',修订:'e82be7d358',时间:'2018-11-14T08:17:03' 系统信息:主机:'x-r',ip:'fe80:0:0:0:4ac:2f6c:527b:c271%en0',os.name:'Mac OS X',os.arch:'x86_64' , os.version: '10.14.6', java.version: '11.0.3' 驱动信息:driver.version:未知

【问题讨论】:

    标签: selenium-webdriver safari saucelabs


    【解决方案1】:

    这将打开一个新标签。在 MacOs Mojave safari 版本 12.1.2 (14607.3.9) 上尝试过

    driver.get("http://google.com");
            ((JavascriptExecutor) driver).executeScript("window.open('http://cnn.com','_blank');");
    

    【讨论】:

    • 嗯,好像我在本地也有它。也许是 Saucelabs 的问题?
    • 是的,不在 Saucelabs 中工作。这就是上面的错误的来源。在本地运行良好。
    • Safari 13 上相同
    猜你喜欢
    • 2018-04-09
    • 2013-07-07
    • 2014-05-14
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 2016-04-22
    相关资源
    最近更新 更多