org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with Command duration or timeout:(org.openqa.selenium.ElementNotVisibleException:元素当前不可见,因此可能无法与命令持续时间或超时交互:)
问题描述
我的问题是硒给出了异常可见的元素.我不明白这一点,因为当我在我的机器上进行构建时!(测试建立在竹子上).
My problem is that selenium give the exception so visible elements. I don't understand this because when I put to build in my machine works! ( The tests build at bamboo).
这是一个例外:
org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with Command duration or timeout: 30.06 seconds Build info: version: '2.44.0', revision: '76d78cf323ce037c5f92db6c1bba601c2ac43ad8', time: '2014-10-23 13:11:40' System info: host: 'N/A', ip: 'N/A', os.name: 'Linux', os.arch: 'amd64', os.version: '3.2.0-52-virtual', java.version: '1.7.0_72' Session ID: 1757208d-d49e-4792-b053-e55e7300c233 Driver info: org.openqa.selenium.firefox.FirefoxDriver Capabilities [{platform=LINUX, acceptSslCerts=true, javascriptEnabled=true, cssSelectorsEnabled=true, databaseEnabled=true, browserName=firefox, handlesAlerts=true, nativeEvents=false, webStorageEnabled=true, rotatable=false, locationContextEnabled=true, applicationCacheEnabled=true, takesScreenshot=true, version=34.0}]
org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with
Command duration or timeout: 30.06 seconds
代码:
String name;
String key;
@Before
public void setUp() throws InterruptedException {
driver.findElement(By.id("menu_topMenu.maintenance")).click();
Thread.sleep(1000);
driver.findElement(By.id("menu_topMenu.route")).click();
}
@Test
public void test() throws InterruptedException {
AddRoute addRoute = new AddRoute(driver);
addRoute.add();
name = addRoute.getName();
key = addRoute.getKey();
Thread.sleep(3000);
driver.findElement(By.cssSelector
("#Route_btn_novo")).click();
driver.findElement(By.cssSelector
("#Route_key > input[type="text"]")).sendKeys(key);
driver.findElement(By.cssSelector
("#Route_description > input[type="text"]")).clear();
driver.findElement(By.cssSelector
("#Route_description > input[type="text"]")).sendKeys(name);
driver.findElement(By.cssSelector
("#Route_organization > div.lookUpHitArea")).click();
driver.findElement(By.cssSelector
("#MonetUIFieldsLookupGridContainer_organization > div.slick-pane.slick-pane-top.slick-pane-left > div.slick-viewport.slick-viewport-top.slick-viewport-left > div > div:nth-child(2) > div.slick-cell.l0.r0.cell-row")).click();
driver.findElement(By.cssSelector
("#Route_plannedCost > input")).sendKeys("10000");
driver.findElement(By.cssSelector
("#Route_origin > div.lookUpHitArea")).click();
driver.findElement(By.cssSelector
("#MonetUIFieldsLookupGridContainer_location > div.slick-pane.slick-pane-top.slick-pane-left > div.slick-viewport.slick-viewport-top.slick-viewport-left > div > div:nth-child(1) > div.slick-cell.l1.r1.cell-row.selected")).click();
driver.findElement(By.cssSelector
("#Route_lastStopIsDestination > input")).click();
Thread.sleep(1000);
driver.findElement(By.cssSelector
("#Route_btn_save_and_close")).click();
Thread.sleep(3000);
assertTrue("Rota existente nao validada corretamente",
isDisplayedByCssSelector(driver, "#form_and_grid > div > div.monetInlineAlerContainer > div"));
}
}
我不知道该怎么办了!
推荐答案
我不确定你的整个设置是什么样子的.但是,一种常见的做法是在这种情况下使用 Selenium Grid.这个想法是拥有一个 selenium 集线器和多个从属设备(根据您的需要,可能是虚拟机),并让 CI 服务器控制从属设备来执行测试.您遇到的问题是因为 CI 服务器的行为不像您的本地机器那样.该元素不可见意味着 selenium 无法与浏览器进行交互,它不应该在 CI 上进行交互.请参阅 this 了解有关网格.这应该可以帮助您入门.
I am not sure how your entire set up looks like. But, a common practice is to use Selenium Grid in such case. The idea is to have a selenium hub and multiple slaves(as many as you need and may be virtual machines) and have the CI server controlling the slaves to execute the tests. The issue you are having is because of CI server is not acting like your local machine is doing. The element is not visible means selenium is not able to interact with the browser which it should not on CI. See this to explore more about the grid. This should help you to get started.
注意:这是从 CI 执行 selenium 测试的众多方法之一
这篇关于org.openqa.selenium.ElementNotVisibleException:元素当前不可见,因此可能无法与命令持续时间或超时交互:的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:org.openqa.selenium.ElementNotVisibleException:元素当前不可见,因此可能无法与命令持续时间或超时交互:


- Eclipse 插件更新错误日志在哪里? 2022-01-01
- value & 是什么意思?0xff 在 Java 中做什么? 2022-01-01
- 将log4j 1.2配置转换为log4j 2配置 2022-01-01
- Safepoint+stats 日志,输出 JDK12 中没有 vmop 操作 2022-01-01
- Jersey REST 客户端:发布多部分数据 2022-01-01
- Java包名称中单词分隔符的约定是什么? 2022-01-01
- C++ 和 Java 进程之间的共享内存 2022-01-01
- Spring Boot连接到使用仲裁器运行的MongoDB副本集 2022-01-01
- 如何使用WebFilter实现授权头检查 2022-01-01
- 从 finally 块返回时 Java 的奇怪行为 2022-01-01