首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >元素不在可见屏幕中时无法处理

元素不在可见屏幕中时无法处理
EN

Stack Overflow用户
提问于 2015-12-16 10:54:23
回答 3查看 3.9K关注 0票数 1

当元素不在可见屏幕上时,Selenium抛出一个No元素找到的异常。只有当我使用Autoit或手动在页面上滚动时,它才能工作。

尽管目前我正在使用AutoIt向下滚动页面并定位元素,但我不这样认为,它将适用于所有类型的分辨率屏幕。

硒版本: 2.41.0 Chrome版本: 47.0.2526.80

注意:我的应用程序只在Chrome浏览器中工作

请建议一下。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-16 11:07:58

请看,由于Selenium Webdriver试图模拟真实用户,所以它不能与不可见/隐藏的元素交互。首先,您可以使用Actions移动到元素,然后简单地检查元素的可见性,如下所示:

代码语言:javascript
复制
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;

然后你可以执行任何你想要执行的动作。

票数 0
EN

Stack Overflow用户

发布于 2015-12-16 11:09:50

试试这个:

代码语言:javascript
复制
WebElement element = driver.findElement(By.id("id"));
Actions actions = new Actions(driver);
actions.moveToElement(element);
actions.perform();
票数 1
EN

Stack Overflow用户

发布于 2015-12-16 11:43:38

您可以尝试将元素放在页面的开头,例如在第一个可见的div中,使用jQuery (如这里prepend方法所示)

代码语言:javascript
复制
$( ".div_class" ).prepend( $( "h2" ) ); 
//put the h2 element at the beginning of the div with class "div_class"

您可以了解更多关于它的信息,这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34310115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档