Selenium-将页面移到前面
我正在使用Selenium和phantomJS webdriver执行一个网页抓取和更新。在某一阶段,完成一个页面可以显示页面A或页面B。我想要的页面是页面B。如果页面A出现,我可以找到元素:Selenium-将页面移到前面,selenium,Selenium,我正在使用Selenium和phantomJS webdriver执行一个网页抓取和更新。在某一阶段,完成一个页面可以显示页面A或页面B。我想要的页面是页面B。如果页面A出现,我可以找到元素: <li class="menu_item"> <a class="menu_item_anchor_selected" href="#page_a">Page_A</a> </li> <li class="menu_item"> <
<li class="menu_item">
<a class="menu_item_anchor_selected" href="#page_a">Page_A</a>
</li>
<li class="menu_item">
<a class="menu_item_anchor" href="#page_b">Page_B</a>
</li>
我试过使用:
driver.manage().window().maximize();
以及其他一些技巧,以确保窗口没有缩小,从而在可视窗口之外实现所需的控制,以及其他类似技巧,以确保窗口没有完全移出屏幕
我也尝试过:
JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript ("arguments[0].checked=true;", we);
强制元素可见。然而,这种方法仅仅抛出了一个异常“不能点击选项元素。执行JavaScript点击函数返回了一个意外错误等。”
然而,当我再次运行我的应用程序时,这一次使用Internet Explorer驱动程序,我注意到当我得到页面_B(并通过在系统日志中显示页面内容来证明),页面_A仍然可见。在获得页面B之前,我确实尝试过调整页面A的大小(之前已最大化),但这并没有什么不同;B页上的所有内容都是看不见的,不可读取的
关于Selenium如何处理这一问题的任何建议?IMO,
将目标从锚定提取到页面B
将不是最佳做法。您应该像手动测试人员那样自动执行这些步骤,而不是最佳实践。然而,我能够找到一个可点击的元素来调用page_B。
JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript ("arguments[0].checked=true;", we);