我一直在质疑无铬铬变体的硒测试。 有时测试什么都在等待,为什么要长时间10分钟? 我添加了40秒的测试超时时间。
15:41:54 INFO: Selenium WebDriver v. 3.14.0 build time: 2018-08-02T20:19:58.91Z
15:41:54 Oct 12, 2018 12:41:55 PM com.codeborne.selenide.impl.WebDriverThreadLocalContainer createDriver
15:41:54 INFO: Create webdriver in current thread 1: ChromeDriver -> ChromeDriver: chrome on LINUX (6332d1a2dee8e95f05da4130b99237f9)
15:51:54 [34mEmbed Failed timeout
15:51:54 (Session info: chrome=69.0.3497.100)
15:51:54 (Driver info: chromedriver=2.41.578700 (2f1ed5f9343c13f73144538f15c00b370eda6706),platform=Linux 3.10.0-862.14.4.el7.x86_64 x86_64) (WARNING: The server did not provide any stacktrace information)
15:51:54 Command duration or timeout: 0 milliseconds
硒设置:
case "chrome":
testBrowserName = "CH";
WebDriverManager.chromedriver().setup();
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--disable-dev-shm-usage");
chromeOptions.addArguments("--no-sandbox");
chromeOptions.addArguments("--headless");
chromeOptions.addArguments("--window-size=1920,1080");
ChromeDriver driver = new ChromeDriver(chromeOptions);
WebDriverRunner.setWebDriver(driver);
break;
答案 0 :(得分:0)
您还没有提到有关用例的详细信息,并且不清楚为什么您将测试仅用于 ChromeDriver 实现。
如果您使用ChromeDriver driver = new ChromeDriver();
,将要创建的 ChromeDriver 实例将只能调用和执行由 ChromeDriver 实施并受<仅限em> Chrome浏览器。要与其他浏览器一起使用,您必须专门创建以下单个对象:
FirefoxDriver driver = new FirefoxDriver();
InternetExplorerDriver driver = new InternetExplorerDriver();
从 Selenium 角度来看, WebDriver接口类似于第三方浏览器供应商之类的协议,例如 Mozilla , Chrome , Internet Explorer , Safari 等必须遵循并实现相同的功能。反过来,这将帮助最终用户使用公开的API编写通用代码并在所有可用的 Browsers 中实现功能,而无需进行任何更改。
您将在what is the difference between ChromeDriver and WebDriver in selenium?
中找到详细的讨论切换到 WebDriver界面,而不是使用 ChromeDriver 实施。根据当前情况,我们必须直接实例化 WebDriver接口的实现。当前的做法是,我们需要针对此接口编写自动化测试脚本,以便将来在需要时可以交换功能更全的浏览器。
示例:
case "chrome":
testBrowserName = "CH";
WebDriverManager.chromedriver().setup();
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--disable-dev-shm-usage");
chromeOptions.addArguments("--no-sandbox");
chromeOptions.addArguments("--headless");
chromeOptions.addArguments("--window-size=1920,1080");
WebDriver driver = new ChromeDriver(chromeOptions);
WebDriverRunner.setWebDriver(driver);
break;