当元素不在可见屏幕上时,Selenium抛出一个No元素找到的异常。只有当我使用Autoit或手动在页面上滚动时,它才能工作。
尽管目前我正在使用AutoIt向下滚动页面并定位元素,但我不这样认为,它将适用于所有类型的分辨率屏幕。
硒版本: 2.41.0 Chrome版本: 47.0.2526.80
注意:我的应用程序只在Chrome浏览器中工作
请建议一下。
发布于 2015-12-16 11:07:58
请看,由于Selenium Webdriver试图模拟真实用户,所以它不能与不可见/隐藏的元素交互。首先,您可以使用Actions移动到元素,然后简单地检查元素的可见性,如下所示:
WebElement element = driver.findElement(By by);
Actions action = new Action(driver);
action.moveToElement(element).perform();
WebDriverWait wait = new WebDriverWait(driver, 60);
wait.until(ExpectedConditions.visibilityOf(element)).WhateverActionYouWantToDoOnWebElement;然后你可以执行任何你想要执行的动作。
发布于 2015-12-16 11:09:50
试试这个:
WebElement element = driver.findElement(By.id("id"));
Actions actions = new Actions(driver);
actions.moveToElement(element);
actions.perform();发布于 2015-12-16 11:43:38
您可以尝试将元素放在页面的开头,例如在第一个可见的div中,使用jQuery (如这里和prepend方法所示)
$( ".div_class" ).prepend( $( "h2" ) );
//put the h2 element at the beginning of the div with class "div_class"您可以了解更多关于它的信息,这里
https://stackoverflow.com/questions/34310115
复制相似问题