在Selenium中的单个窗口中改变不同页面之间的驱动焦点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Selenium中的单个窗口中改变不同页面之间的驱动焦点相关的知识,希望对你有一定的参考价值。

我是一个Selenium自动化的初学者,我遇到了一个情况,如果我打开一个页面xyz.com,并登录,然后有一些文本框,下拉和按钮被点击,但问题是,当驱动程序进入该页面后,我可以看到这些元素,并可以得到ID和必要的标签,但这些整个页面由3个不同的(.do)页面组成。

例如:1.主页面是abc.do 2.左侧面板是mno.do 3.中间是xyz.do。IE中检查元素的图片而我的元素存在于xyz.do中,链接存在于mno.do中。

我使用eclipse来编码,Selenium 3.1,IE 11。

我如何能在它们之间切换,使我的驱动程序可以找到元素,现在写它的显示元素无法找到,当我拉的源代码,它提供的只有第一个.do页面。

请大家帮忙。

谢谢。

答案

看来这个页面使用的是框架或者iframe,但是因为你没有提供URL,所以只能猜测。

所以,如果要切换框架,只需要使用 switchTo 方法。

driver.switchTo().frame0); // Frame by number
driver.switchTo().frame("iframe1"); // Frame by selector

在调用之后,你就会切换到那个pagefiframe的 "上下文"。

以上是关于在Selenium中的单个窗口中改变不同页面之间的驱动焦点的主要内容,如果未能解决你的问题,请参考以下文章

win+python+selenium实现窗口和tab切换

Selenium中怎么实现多个窗口之间的切换?

Selenium用法详解窗口表单切换JAVA爬虫

Selenium 2自动化测试实战16(多窗口切换)

Selenium_WebDriver_多窗口切换

selenium 窗口切换(多表单切换)