java - 在 Serenity 中禁用 chromedriver V75 的 w3c 选项
问题描述
将 chrome 和相应的 chromedriver 更新到版本 75 后,当相应的名称包含特殊字符时,我无法使用 findby name:
@FindBy(name = "head['such']")
private WebElement searchWordInput;
经过一些快速搜索后,由于默认启用了 w3c 模式,我发现该线程面临同样的问题: https ://groups.google.com/forum/#!msg/selenium-users/TwWf4uwYB5A/5XmNBb7IDAAJ
为了让我们的测试运行,我想暂时禁用 chrome 的 w3c 模式,因为有一个长期解决方案(例如 chromedriver 或 selenium 修复)。
这个答案给出了一个如何在java中作为代码执行的示例:How to turn off w3c in chromedriver to address the error unknown command: Cannot call non W3C standard command while in W3C
在我的情况下,我没有在 java 中配置 chrome 驱动程序,而是在我们的测试中配置用户 serenity 的 @Managed 注释:
@Managed(driver = "chrome")
WebDriver driver;
如果可能的话,我不想自己配置驱动程序,因为这会导致重构许多测试。
不幸的是,我无法弄清楚如何平静地做到这一点。我尝试的是在 serenity.conf 文件中指定它,如下所示:
chrome {
capabilities {
chromeOptions {
"w3c" = false
}
}
}
不知何故,宁静拿起了我的配置,但我认为不是正确的方式:
[main] INFO net.serenitybdd.core.webdriver.driverproviders.ProvideNewDriver - Driver capabilities: Capabilities {acceptInsecureCerts: false, browserName: chrome, chromeOptions.w3c: false, goog:chromeOptions: {args: [--enable-automation, --test-type], extensions: []}, platform: ANY, version: }
如何在 serenity.conf 或 serenity.properties 文件中禁用 chrome w3c 模式?
解决方案
推荐阅读
- javascript - Typescript, how to transform an object to an expeced form
- python - 当密码包含时,FTP_TLS 530 使用 Python3 登录不正确 §
- javascript - onclick event not loading data in correct sequence
- mule - startdate 将 queryparams 作为字符串作为 07/21/2020 和 dayCount 作为整数 30 传递。在 mule 4 中希望 enddate 来自 startdate 和 dayCount
- angular - How do I put a logo saved in assets directory in my pdf using PDFmake?
- java - 从接口调用接口
- solr - Solrj addfilterquery adding "+" sign to replace whitespace in range query
- azure - Bing web search with Azure - I can't get my command to work ? (invalid endpoint)
- excel - Get Parent Attribute/Inheritance if Childnotes missing Attribute
- vb.net - Locating Categories on a wikepedia page