用硒在水豚中可靠的点击功能
Reliable click function in capybara with selenium
有时 .click capybara 函数不会触发,也不会失败,因为它假定它已触发。所以我环顾四周,发现 .trigger("click") 更可靠,但也有一些缺点。
But I read the github for the trigger() function and it says it doesn't work in selenium.
selenium 中 capybara/ruby 是否有可靠点击的替代函数?
例如:
find(el).click
对
find(el).trigger("click")
不,在带有 selenium 的 Capybara 中没有替代的点击功能(除了可能通过 execute_script
执行 JS)。不太可能点击没有触发,更有可能是在 "wrong" 位置触发,原因是页面上的动画导致点击的计算位置在点击实际发生时已过时.在那种情况下,在测试期间禁用动画通常会有所帮助。如果这不是错误的位置问题,并且您可以创建一个展示该行为的示例,将其报告给 geckodriver 或 chromedriver,他们通常会很快修复它(只要您提供一个复制它的示例)。
有时,您尝试单击的元素被隐藏或重叠,在这些情况下您必须使用-
find(el).trigger("click", visible: false)
希望对您有所帮助。
有时 .click capybara 函数不会触发,也不会失败,因为它假定它已触发。所以我环顾四周,发现 .trigger("click") 更可靠,但也有一些缺点。
But I read the github for the trigger() function and it says it doesn't work in selenium.
selenium 中 capybara/ruby 是否有可靠点击的替代函数?
例如:
find(el).click
对
find(el).trigger("click")
不,在带有 selenium 的 Capybara 中没有替代的点击功能(除了可能通过 execute_script
执行 JS)。不太可能点击没有触发,更有可能是在 "wrong" 位置触发,原因是页面上的动画导致点击的计算位置在点击实际发生时已过时.在那种情况下,在测试期间禁用动画通常会有所帮助。如果这不是错误的位置问题,并且您可以创建一个展示该行为的示例,将其报告给 geckodriver 或 chromedriver,他们通常会很快修复它(只要您提供一个复制它的示例)。
有时,您尝试单击的元素被隐藏或重叠,在这些情况下您必须使用-
find(el).trigger("click", visible: false)
希望对您有所帮助。