【问题标题】:Serenity/WebDriver: cannot access localhostSerenity/WebDriver:无法访问本地主机
【发布时间】:2018-09-22 16:13:02
【问题描述】:

我在使用 Serenity/WebDriver 时遇到问题。突然有一天,我的代码不起作用,我收到错误“Unknown host localhost”。

我可以用http://thucydides.info/docs/serenity-staging/#_serenity_with_cucumber的代码复制:

@RunWith(SerenityRunner.class)
public class WhenSearchingOnGoogle {

    @Managed                                                                
    WebDriver driver;

    @Test
    public void shouldInstantiateAWebDriverInstanceForAWebTest() {
        driver.get("http://www.google.com");                                

        driver.findElement(By.name("q")).sendKeys("firefly", Keys.ENTER);

        new WebDriverWait(driver,5).until(titleContains("Google Search"));

        assertThat(driver.getTitle()).isEqualTo("firefly - Google Search");
    }
}

我收到了这个错误:

测试开始:shouldInstantiateAWebDriverInstanceForAWebTest

18:06:11.599 [main] 信息 net.serenitybdd.core.Serenity - 测试编号:1 九月2018 年 2 月 22 日下午 6:06:11 org.openqa.selenium.remote.DesiredCapabilities 铬 INFOS:使用new ChromeOptions() 优于DesiredCapabilities.chrome()

net.serenitybdd.core.exceptions.SerenityManagedException:无法访问本地主机

at net.serenitybdd.core.webdriver.driverproviders.RemoteDriverBuilder.newRemoteDriver(RemoteDriverBuilder.java:66)
at net.serenitybdd.core.webdriver.driverproviders.DefaultRemoteDriver.buildWithOptions(DefaultRemoteDriver.java:24)
at net.serenitybdd.core.webdriver.driverproviders.RemoteDriverProvider.newInstance(RemoteDriverProvider.java:53)
at net.thucydides.core.webdriver.WebDriverFactory.newWebdriverInstance(WebDriverFactory.java:127)
at net.thucydides.core.webdriver.WebDriverFacade.newDriverInstance(WebDriverFacade.java:149)

当我提供另一个 URL 时,我不明白“无法​​访问本地主机”?!

我尝试了其他驱动程序但没有成功。 我怎样才能让它工作?

谢谢, 塞德里克

【问题讨论】:

  • 似乎我必须启动 Selenium 服务器集线器,但我不记得几天前它工作时启动过它。 Serenity 是否有可能启动 Selenium 服务器?

标签: java webdriver localhost serenity-bdd


【解决方案1】:

似乎使用了远程 webdriver,localhost:4444,当然是通过 serenity.properties 中的这个参数: webdriver.remote.url=http://localhost:4444/wd/hub

我用https://github.com/SeleniumHQ/docker-selenium/blob/master/README.md#selenium-grid-hub-and-nodes 解决了这个问题: 创建一个 docker-compose.yml,然后 从 docker compose up -d 开始 用 docker-compose down 停止

【讨论】:

  • 如果你启动 selenium 网格,它会给出你必须用来连接到网格的 url。从控制台粘贴日志 - ------ 11:23:57.410 INFO [Hub.start] - Selenium Grid hub 已启动并正在运行 11:23:57.425 INFO [Hub.start] - 节点应注册到 @987654323 @ 11:23:57.425 INFO [Hub.start] - 客户端应连接到 10.45.30.151:4444/wd/hub 11:24:05.265 INFO [DefaultGridRegistry.add] - 注册节点 10.45.30.151:39797
【解决方案2】:

如果你在本地运行 selenium 服务器很简单

1. Please download the binary from 

Selenium downloads page

现在导航到包含 jar 的文件夹并在那里打开命令提示符并运行步骤 2 和 3 中的命令

2 。启动中心:

    java -jar selenium-server-standalone-3.14.0.jar -port 4444 -role hub

3。注册:

java -jar selenium-server-standalone-3.14.0.jar -role node -hub http://localhost:4444/grid/register 

之后,您必须找到与 chrome 版本匹配的驱动程序。例如使用 chromdriver 版本 2.42 的 v69。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 2017-09-29
    • 2021-07-19
    • 2018-08-14
    • 2019-11-11
    • 2016-10-15
    • 2012-06-07
    相关资源
    最近更新 更多