如何单击量角器中被阻止的元素?

时间:2020-05-28 19:28:33

标签: javascript selenium automation protractor

我试图单击一个按钮,但有时会在此按钮前弹出一个窗口,并且我的自动化脚本无法告诉我该元素被拦截且不可点击,我有一个向下滚动到该元素的函数,但是仍然其他元素排在最前面,是否有解决此阻塞元素的方法?

我可以尝试操作,但这在FireFox中不起作用,因为它在protactor中不受支持,关于如何创建函数来“环绕”元素以确保没有其他元素阻止它的任何想法?

1 个答案:

答案 0 :(得分:0)

首先,直接回答您的问题。使用此Java Scrip单击

/**
*  Clicks on passed element by injecting js click() in the context of window
*  @param    {ElementFinder}      $element       Locator of element
*  @return   {Promise}
*/
let jsClick = $element => 
        return browser.executeScript(
            'arguments[0].click();', $element.getWebElement()
        );

它的作用-调用函数并传递元素时,它将js代码注入浏览器的控制台。此代码查找您的元素并执行单击。重要的区别在于,无论布局或可见性如何,它都会单击该元素,因此请不要在测试中过度使用它,因为它并不是真正的用户行为

还有,什么元素阻止了您的按钮?我经历过很多次,当第三方集成显示一些随机弹出窗口时,您无法控制这些元素。我所做的并且一直有效,我还通过在浏览器中注入一些代码来删除该集成。但是所有代码都不相同,因此您需要对此进行研究。例子在这里 https://stackoverflow.com/a/59039308/9150146

相关问题