我正在使用Selenium Webdriver(Ruby)来自动化我的网络应用程序,我的网络应用程序有这个轮播,其中我的元素不断地循环移动。 当我找到该元素并尝试单击它时,元素向前移动。因此我无法找到该元素。 我尝试通过以下代码查找并单击该移动元素:
{
ele_button = driver.find_element(:xpath,"xpath")
sleep 10
ele_button.click
}
我认为通过'sleep 10'我可以让该元素等待10秒然后点击它。但这不起作用,每当我运行脚本时我都会收到ElementNotVisibleError。
问题:
甚至可以自动化移动元素吗?如果是,请为我提供解决方案。
答案 0 :(得分:0)
是的,这绝对是可能的。我在我的网站上为旋转木马处理了相同的场景。有三种方式:
答案 1 :(得分:0)
为什么行动分裂?
我会推荐以下内容:
driver.find_element(:xpath,"xpath").click()
所以它会找到该对象并点击它。
答案 2 :(得分:0)
你可以做的另一件事,就是我们在selenium中使用java,根据你的按钮在一次旋转之后回来的时间放置 implicitlyWait ;现在在implicitlyWait
之后执行clickdriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
// Suppose a rotation of button takes 30 sec
driver.findElement(By.xpath("/html/body/div[2]")).click();
// action performs on the element
在 ruby 中,您必须使用此类语法
@driver.manage.timeouts.implicit_wait = 30