我正在使用Selenium和java,点击一个按钮后我落在另一个页面上,我看到了我在视口中看到的输入标签
等待页面加载后
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
为了获取标签我使用scrollIntoView()并使用javascript以这种方式在id中搜索元素:
js.executeScript("document.getElementById('elementId').scrollIntoView(true);");
但问题是document.getElementById('elementId')返回null;我也在firefox webdriver控制台中尝试了同样的结果。
如果我使用firefox控制台在同一页面上执行document.getElementById('elementId')
但未使用Selenium webdriver,我会按预期获得标记。
为什么我使用Selenium获取此null?如何解决?
答案 0 :(得分:1)
请在scrollIntoView()代码
之前使用以下代码 driver.switchTo().frame(driver.findElement(By.tagName("iframe")));
如果任何元素位于iframe标记下,则应使用上面的
将驱动程序切换为iframe如果您需要在默认模式下切换驱动程序,则需要使用以下代码
driver.switchTo().defaultContent()
如果元素处于模态下,则使用它
driver.switchTo().frame("ModelFrameTitle");
或
driver.switchTo().activeElement()