Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium-将页面移到前面_Selenium - Fatal编程技术网

Selenium-将页面移到前面

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"> <

我正在使用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">
  <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);