Selenium – after page change cannot find element even it is visible
我正在使用 Selenium 和 java,单击一个按钮后,我进入另一个页面,我在视口中看到了我正在查看的输入标签
等待页面加载后
1
|
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
|
为了获取标签,我使用 scrollIntoView() 并通过 id 在 java 中使用 javascript 搜索元素:
1
|
js.executeScript("document.getElementById(‘elementId’).scrollIntoView(true);");
|
但问题是 document.getElementById(‘elementId’) 返回 null;我也在 firefox webdriver 控制台中尝试过,结果相同。
如果我使用 firefox 控制台在同一页面上执行
为什么我使用 Selenium 得到这个空值?怎么解决?
请在 scrollIntoView() 代码之前使用以下代码
1
|
driver.switchTo().frame(driver.findElement(By.tagName("iframe")));
|
如果任何元素位于 iframe 标记下,您应该使用上面的方法将驱动程序切换到 iframe
如果您需要在默认模式下切换驱动程序,那么您需要使用以下代码
1
|
driver.switchTo().defaultContent()
|
如果元素在模态下,则使用它
1
|
driver.switchTo().frame("ModelFrameTitle");
|
或
1
|
driver.switchTo().activeElement()
|
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/java/267558.html