Selenium Chromedriver在导航栏中打开数据:

时间:2019-03-15 16:00:14

标签: selenium selenium-webdriver selenium-chromedriver

如果我通过chromedriver打开Chrome并导航到URL,则在导航栏中只能获取一个数据:。所有的google解决方案(正确的chromedriverversion,URL中的protocoll等)都没有帮助我。

package de.vhv.selenium;

import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class OpenChromeAndNavigate {

    @Test
    public void test() {
        System.setProperty("webdriver.chrome.driver", "C://vhventw//selenium//chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.get("https://www.google.de");
    }

}

此外,如果我添加--headless并侦听调试端口,则一切正常。但是我不想让它无头运行。

 package de.vhv.selenium;

import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

public class OpenChromeAndNavigate {

    @Test
    public void test() {
        System.setProperty("webdriver.chrome.driver", "C://vhventw//selenium//chromedriver.exe");
        WebDriver driver = new ChromeDriver(getDesiredCapabilities());
        driver.get("https://www.google.de");
    }

    private ChromeOptions getDesiredCapabilities() {
        ChromeOptions options = new ChromeOptions();


        options.addArguments("--headless");
//        options.addArguments("--disable-extensions"); // disabling extensions
//        options.addArguments("--disable-gpu"); // applicable to windows os only
//        options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
//        options.addArguments("--no-sandbox");
        options.addArguments("--remote-debugging-port=9223");


        return options;
    }

}

有什么想法可以尝试吗?

设置:

Chrome版本= 71.0.3578.80

Chromedriver版本= 2.46.628402

3 个答案:

答案 0 :(得分:0)

您需要注意以下几点:

  • 不确定您的项目结构,但我建议避免使用 . 字符和 selenium一词内的包名称中,如下所示:

    package de.vhv.selenium;
    
  • 通过包含{em> chromedriver.exe 的绝对路径System.setProperty()行传递的 Value 部分应通过以下方式表示: 转义的反斜杠为:

    System.setProperty("webdriver.chrome.driver", "C:\\vhventw\\selenium\\chromedriver.exe");
    
  • 根据ChromeDriver - WebDriver for Chrome

  

如果您使用的是 Chrome版本72 ,请下载 ChromeDriver 2.46 ChromeDriver 72.0.3626.69

  • 根据最佳做法:
    • JDK 升级到最新级别JDK 8u202
    • 升级到当前水平Version 3.141.59
    • ChromeDriver 升级到当前的ChromeDriver v73.0.3683.68级别。
    • Chrome 版本保持在 Chrome v73 级别之间。 (as per ChromeDriver v73.0.3683.68 release notes
    • 通过您的 IDE
    • 清理您的项目工作区重建您的项目,并且仅具有必需的依赖项。
    • 如果您的基本 Web客户端版本过旧,请通过Revo Uninstaller进行卸载,并安装最新版本的 Web客户端。 li>
    • 进行系统重启
    • 执行您的@Test
    • 始终在driver.quit()方法内调用tearDown(){},以优雅地关闭和销毁 WebDriver Web Client 实例。

答案 1 :(得分:0)

我弄清楚了,线

options.addArguments(“-remote-debugging-port = 9225”);

解决了我的问题。我已经在无头运行中使用它来监听端口并观看无头运行。但这解决了我满头跑的问题。

return new ChromeDriver(getDesiredCapabilities());



private ChromeOptions getDesiredCapabilities() {
    ChromeOptions options = new ChromeOptions();
    //options.addArguments("--headless");
    options.addArguments("--disable-extensions"); // disabling extensions
    options.addArguments("--disable-gpu"); // applicable to windows os only
    options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
    options.addArguments("--no-sandbox");
    options.addArguments("--remote-debugging-port=9225");

    return options;
}

答案 2 :(得分:0)

我在同一个问题上苦苦挣扎,然后我意识到我忘了以:

开始测试

$ I-> amOnPage('/');

一定要先尝试再深入。