Automated tests 在使用Cucumber、Selenium和;水豚?
我正在尝试为一个应用程序的前端UI编写自动化测试,该应用程序有很多嵌套的阴影DOM,我无法使用Capybara、Cucumber和Selenium(使用chromedriver)访问它们。该应用程序正在使用AWS放大验证器。当我尝试查找输入元素时,我不断遇到以下错误:Automated tests 在使用Cucumber、Selenium和;水豚?,automated-tests,cucumber,capybara,aws-amplify,shadow-dom,Automated Tests,Cucumber,Capybara,Aws Amplify,Shadow Dom,我正在尝试为一个应用程序的前端UI编写自动化测试,该应用程序有很多嵌套的阴影DOM,我无法使用Capybara、Cucumber和Selenium(使用chromedriver)访问它们。该应用程序正在使用AWS放大验证器。当我尝试查找输入元素时,我不断遇到以下错误: 找不到css“输入[id$='username'”(Capybara::ElementNotFound) 这就是我的测试结果: When('I在用户名字段中键入我的{string}')do | string | find('inp
找不到css“输入[id$='username'”(Capybara::ElementNotFound)
这就是我的测试结果:
When('I在用户名字段中键入我的{string}')do | string | find('input[id$='username'])。set(string)end
我在其他帖子上读到chrome驱动程序支持shadow dom,但不确定在这种情况下如何处理它目前您需要使用
evaluate\u script
来访问shadow dom-like
element = find(...) # find element that contains shadow dom
shadow_root = @session.evaluate_script(<<~JS, element)
(function(root){
return root.shadowRoot;
})(arguments[0])
JS
shadow_root.find("input[id$='username']")
element=find(…)#查找包含阴影dom的元素
shadow\u root=@session.evaluate\u脚本(