selenium切换窗口后定位元素出现问题的解决方案

简介: 在做UI自动化的过程中,有时需要由一个窗口跳转到另一个窗口,这时直接去定位页面元素,可能会出现问题,这时,我们需要将driver与新的窗口进行绑定。 完整代码如下:(python版) #coding=utf-8 import os from selenium import webdr...

在做UI自动化的过程中,有时需要由一个窗口跳转到另一个窗口,这时直接去定位页面元素,可能会出现问题,这时,我们需要将driver与新的窗口进行绑定。

完整代码如下:(python版)

#coding=utf-8

import os
from selenium import webdriver
import time


chrome = 'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe'
os.environ["webdriver.chrome.driver"] = chrome
driver = webdriver.Chrome(chrome)

driver.get('http://www.baidu.com')

#获取当前窗口的句柄
currentWin = driver.current_window_handle

#跳转到另一个新页面
driver.find_element_by_xpath("//p[@id='nv']/a[3]").click()
time.sleep(1)
#获取所有窗口的句柄
handles = driver.window_handles
for i in handles:
    if currentWin == i:
        continue
    else:
        #将driver与新的页面绑定起来
        driver = driver.switch_to_window(i)
#在新的页面定位元素
driver.find_element_by_xpath("//div[@id='menu']/a[1]").click()
time.sleep(2)
driver.quit()

以上。

说明:driver是对应到一个特定的窗口的。使用switch_to_window()方法后,需要更新driver,将driver与新的窗口绑定。


img_42a4adae4716d0e15c3eeaabfd040044.png

注:转载需注明出处及作者。

流柯      

目录
相关文章
|
8天前
|
Java 测试技术 定位技术
《手把手教你》系列技巧篇(二十三)-java+ selenium自动化测试-webdriver处理浏览器多窗口切换下卷(详细教程)
【4月更文挑战第15天】本文介绍了如何使用Selenium进行浏览器窗口切换以操作不同页面元素。首先,获取浏览器窗口句柄有两种方法:获取所有窗口句柄的集合和获取当前窗口句柄。然后,通过`switchTo().window()`方法切换到目标窗口句柄。在项目实战部分,给出了一个示例,展示了在百度首页、新闻页面和地图页面之间切换并输入文字的操作。最后,文章还探讨了在某些情况下可能出现的问题,并提供了一个简单的本地HTML页面示例来演示窗口切换的正确操作。
37 0
|
1月前
|
Web App开发 测试技术
使用selenium轻松实现元素拖拽
本文介绍了如何使用Selenium进行Web自动化测试中的元素拖拽操作。通过`ActionChains`类,我们可以模拟用户拖拽行为,确保测试覆盖到页面布局调整等交互功能。示例代码展示了如何定位元素并执行拖拽,以及在实际场景中改变页面布局的应用。利用Selenium的拖拽功能,可提升自动化测试的真实性和效率。
17 0
|
1月前
|
JavaScript
selenium元素等待及滚动条滚动
selenium元素等待及滚动条滚动
20 2
|
1月前
|
Java 测试技术 Python
Selenium帮助你轻松实现浏览器多窗口操作
Selenium帮助你轻松实现浏览器多窗口操作
86 0
|
2月前
|
Linux 索引
Linux中使用selenium截图的文字变为方框的解决方案
Linux中使用selenium截图的文字变为方框的解决方案
35 1
|
3月前
|
Python
python+selenium 判断元素是否存在
python+selenium 判断元素是否存在
37 0
|
3月前
|
前端开发
selenium 解决 id定位、class定位中,属性值带空格的解决办法
selenium 解决 id定位、class定位中,属性值带空格的解决办法
64 1
|
8月前
|
Web App开发 缓存 文字识别
scrapy_selenium的常见问题和解决方案
scrapy_selenium是一个结合了scrapy和selenium的库,可以让我们使用selenium的webdriver来控制浏览器进行动态网页的爬取。但是在使用scrapy_selenium的过程中,我们可能会遇到一些问题,比如如何设置代理、如何处理反爬、如何优化性能等。本文将介绍一些scrapy_selenium的常见问题和解决方案,希望对你有所帮助。
143 0
scrapy_selenium的常见问题和解决方案
|
4月前
|
前端开发 测试技术 Python
软件测试/测试开发|Python selenium CSS定位方法详解
软件测试/测试开发|Python selenium CSS定位方法详解
30 0
|
4月前
|
XML 人工智能 测试技术
软件测试/人工智能|详解selenium xpath定位
软件测试/人工智能|详解selenium xpath定位
53 2

热门文章

最新文章