【发布时间】:2021-07-08 13:47:07
【问题描述】:
我正在使用 ruby 2.7、Selenium -WebDriver 3.142.7、Capybara 3.35.3、MSEdgeDriver 91.0.864.48、Cucumber 5.3.0 执行测试用例。 .我的页面在加载后就被杀死了。请在下面找到日志。
在端口 17557 上启动 MSEdgeDriver 91.0.864.48 (27d934e7c76a9077a5bb7cc1512b894d360169ec) 只允许本地连接。 有关保持 MSEdgeDriver 安全的建议,请参阅 https://chromedriver.chromium.org/security-considerations。 MSEdgeDriver 已成功启动。 2021-07-08 16:24:50 DEBUG Selenium 轮询 ["127.0.0.1", 17557] 上的套接字 2021-07-08 16:24:51 INFO Selenium -> POST 会话 2021-07-08 16:24:51 信息硒 >>> http://127.0.0.1:17557/session | {"desiredCapabilities":{"browserName":"MicrosoftEdge","version":"","platform":"WINDOWS","javascriptEnabled":true,"cssSelectorsEnabled":true,"takesScreenshot":true,"nativeEvents" :true,"rotatable":true,"ms:edgeOptions":{"args":["--disable-web-security"],"w3c":false}},"capabilities":{"firstMatch":[ {"browserName":"MicrosoftEdge","ms:edgeOptions":{"args":["--disable-web-security"],"w3c":false}}]}}
2021-07-08 16:25:02 DEBUG Selenium > {"Accept"=>"application/json", "Content-Type"=>"application/json; charset=UTF-8", "User-代理"=>"selenium/3.142.7 (ruby macosx)", "Content-Length"=>"2153"} 2021-07-08 16:25:02 信息硒 POST 会话/4f68a951ade6a304143ceb876d58f8dd/执行 2021-07-08 16:25:02 信息硒 >>> http://127.0.0.1:17557/session/4f68a951ade6a304143ceb876d58f8dd/execute | {"script":"return arguments[0].matches(':disabled, select:disabled *')","args":[{"element-6066-11e4-a52e-4f735466cecf":"0.1779752229405389-1"} ]} 2021-07-08 16:25:02 DEBUG Selenium > {"Accept"=>"application/json", "Content-Type"=>"application/json; charset=UTF-8", "User-Agent"= >“硒/3.142.7(ruby macosx)”,“内容长度”=>“144”} 2021-07-08 16:25:02 INFO Selenium
请帮忙。谢谢。
【问题讨论】:
-
警告:此人从不接受他的问题的答案。
-
您是否尝试通过 WebDirver 执行脚本代码?如果您使用的是Element.matches(),那么它应该可以工作,就像this case 中的答案一样。但是我不确定你的代码有没有问题,如果你能提供一个重现问题的最小代码sn-p,这将有助于找出问题的原因。
-
@XudongPeng 嗨,先生,我做了很多研究,我觉得实际问题出在 CSS 选择器上。我更改了 #element :username, '.login-box form:first-of-type #username ' to element :username,'#username[type=text]' ,然后它开始工作,但问题是我正在使用本机事件与元素示例交互:userField = self.login_page.username userField.native.send_keys(username) 和当 Capybara 没有找到任何元素时,它会杀死页面
-
@XudongPeng 先生您好,我得到了这个问题。如果我们使用带有“be_visible”断言的 R 规范,那么它适用于 chrome,但不适用于 Edge 浏览器。我用“be_present”替换了它,它适用于两个浏览器。
-
@Prophet 很抱歉给您带来不便,我会处理的
标签: selenium-webdriver capybara microsoft-edge