【问题标题】:Safari. Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure苹果浏览器。无法开始新会话。可能的原因是远程服务器地址无效或浏览器启动失败
【发布时间】:2015-08-03 10:24:14
【问题描述】:

我正在尝试在 Safari 上运行我的 Selenium 测试。我可以在 FireFox 和 IE 上运行我的测试,它运行良好,但不能在 safari 上运行。 所以可能有人有同样的问题,可以告诉我为什么它不工作,是的,我已将 WebDriver 添加到 Safari 扩展:http://prntscr.com/809miw


我有这个错误:


2015-08-03 13:18:57.666:INFO::main: Logging initialized @169ms
[2015/08/03 13:18:57] [ID:69E814D] [Session Start]: Initializing Session...
[2015/08/03 13:18:58] [ID:69E814D] [Selenium]: Aug 03, 2015 1:18:58 PM org.openqa.selenium.safari.SafariDriverServer start
INFO: Server started on port 39280

[2015/08/03 13:18:58] [ID:69E814D] [Selenium]: Aug 03, 2015 1:18:58 PM org.openqa.selenium.safari.SafariDriverCommandExecutor start
INFO: Launching Safari

[2015/08/03 13:18:58] [ID:69E814D] [Selenium]: Aug 03, 2015 1:18:58 PM org.openqa.selenium.safari.SafariDriverCommandExecutor start
INFO: Waiting for SafariDriver to connect

[2015/08/03 13:18:59] [ID:69E814D] [Selenium]: Aug 03, 2015 1:18:59 PM org.openqa.selenium.safari.SafariDriverChannelHandler$1 operationComplete
INFO: Connection opened

[2015/08/03 13:18:59] [ID:69E814D] [Selenium]: Aug 03, 2015 1:18:59 PM org.openqa.selenium.safari.SafariDriverCommandExecutor start
INFO: Driver connected in 980 ms

[2015/08/03 13:18:59] [ID:69E814D] [Selenium]: Aug 03, 2015 1:18:59 PM org.openqa.selenium.safari.SafariDriverCommandExecutor stop
INFO: Shutting down

[2015/08/03 13:18:59] [ID:69E814D] [Selenium]: Aug 03, 2015 1:18:59 PM org.openqa.selenium.safari.SafariDriverCommandExecutor stop
INFO: Closing connection

[2015/08/03 13:18:59] [ID:69E814D] [Selenium]: Aug 03, 2015 1:18:59 PM org.openqa.selenium.safari.SafariDriverCommandExecutor stop
INFO: Stopping Safari

[2015/08/03 13:18:59] [ID:69E814D] [Selenium]: Aug 03, 2015 1:18:59 PM org.openqa.selenium.os.UnixProcess$SeleniumWatchDog destroyHarder
INFO: Command failed to close cleanly. Destroying forcefully (v2). org.openqa.selenium.os.UnixProcess$SeleniumWatchDog@2038ae61

[2015/08/03 13:18:59] [ID:69E814D] [Selenium]: Aug 03, 2015 1:18:59 PM org.openqa.selenium.safari.SafariDriverCommandExecutor stop
INFO: Stopping server

[2015/08/03 13:18:59] [ID:69E814D] [Selenium]: Aug 03, 2015 1:18:59 PM org.openqa.selenium.safari.SafariDriverServer stop
INFO: Stopping server

[2015/08/03 13:18:59] [ID:69E814D] [Selenium]: Aug 03, 2015 1:18:59 PM org.openqa.selenium.safari.SafariDriverCommandExecutor stop
INFO: Shutdown complete

[2015/08/03 13:18:59] [ID:69E814D] [Selenium]: Exception in thread "main" 
[2015/08/03 13:18:59] [ID:69E814D] [Selenium]: org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: '2.46.0', revision: '87c69e2', time: '2015-06-04 16:16:47'
System info: host: 'Vitaliii-PC', ip: '169.254.8.187', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_45'
Driver info: driver.version: SafariDriver
[2015/08/03 13:18:59] [ID:69E814D] [Selenium]:  at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:599)
[2015/08/03 13:18:59] [ID:69E814D] [Selenium]:  at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:242)
[2015/08/03 13:18:59] [ID:69E814D] [Selenium]:  at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:128)
[2015/08/03 13:18:59] [ID:69E814D] [Selenium]:  at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:141)
[2015/08/03 13:18:59] [ID:69E814D] [Selenium]:  at org.openqa.selenium.safari.SafariDriver.<init>(SafariDriver.java:58)
[2015/08/03 13:18:59] [ID:69E814D] [Selenium]:  at org.openqa.selenium.safari.SafariDriver.<init>(SafariDriver.java:51)
[2015/08/03 13:18:59] [ID:69E814D] [Selenium]:  at Kodak.AutoTest.Framework.Session.Start(Session.java:117)
[2015/08/03 13:18:59] [ID:69E814D] [Selenium]:  at Kodak.AutoTest.QBT.TC93CreateProject.main(TC93CreateProject.java:27)
[2015/08/03 13:18:59] [ID:69E814D] [Selenium]: Caused by: java.lang.ClassCastException: com.google.gson.JsonObject cannot be cast to java.lang.String
[2015/08/03 13:18:59] [ID:69E814D] [Selenium]:  at org.openqa.selenium.remote.JsonToBeanConverter.convert(JsonToBeanConverter.java:111)
[2015/08/03 13:18:59] [ID:69E814D] [Selenium]:  at org.openqa.selenium.remote.JsonToBeanConverter.convert(JsonToBeanConverter.java:42)
[2015/08/03 13:18:59] [ID:69E814D] [Selenium]:  at org.openqa.selenium.safari.SafariDriverCommandExecutor.execute(SafariDriverCommandExecutor.java:191)
[2015/08/03 13:18:59] [ID:69E814D] [Selenium]:  at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:578)
[2015/08/03 13:18:59] [ID:69E814D] [Selenium]:  ... 7 more

这是我选择浏览器的方式:


switch(this.type)
        {
            case IE:
                File file = new File(this.config().getParam(ConfigFacade.IEDriverPath_Key));
                System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
                //System.setProperty("webdriver.ie.logfile, ""); // TODO: here somehow redirect log to stream.
                this.driver = new InternetExplorerDriver();
                break;
            case Chrome:
                File chromeFile = new File(this.config().getParam(ConfigFacade.ChromeDriverPath_Key));
                System.setProperty("webdriver.chrome.driver", chromeFile.getAbsolutePath());
                this.driver = new ChromeDriver();
                break;
            case FireFox:
                this.driver = new FirefoxDriver();
                break;
            case Safari:
                this.driver = new SafariDriver();
                break;
            default:
                throw new TestException(String.format("Browser (%1s) is not implemented yet", this.type.toString()));
        }

【问题讨论】:

    标签: java selenium-webdriver safari webdriver


    【解决方案1】:

    SafariDriver 仅适用于 OS X。正如我从您的日志中看到的,您正尝试在 Windows 7 上执行它。 您可以在这里查看支持的操作系统和浏览器:http://docs.seleniumhq.org/about/platforms.jsp

    【讨论】:

    • 那么,如果我没有 OS X,还有其他方法可以运行这个脚本吗?
    • 好吧,你总是可以设置一个运行 OS X 的虚拟机并在那里执行它。在我的团队中,我们正在使用支持 Safari 的 Telerik Test Studio Framework,它可以在 Windows 上执行。你可以在这里查看框架:telerik.com/teststudio/testing-framework
    • 嗯,框架很好,但在我的团队中,我们仍然在创建自己的框架。所以使用另一个框架对我们来说是不可能的。所以,好的,我将在虚拟机上运行我的测试。谢谢回答:)
    猜你喜欢
    • 2015-09-07
    • 1970-01-01
    • 2019-08-06
    • 2020-02-25
    • 2019-04-25
    • 2022-01-04
    • 2019-07-07
    • 1970-01-01
    相关资源
    最近更新 更多