selenuim驱动IE浏览器报错selenium.common.exceptions.NoSuchWindowException: Message: Currently focused window

selenuim驱动IE浏览器报错:selenium.common.exceptions.NoSuchWindowException: Message: Currently focused window has been closed.

selenuim驱动IE浏览器报错:selenium.common.exceptions.NoSuchWindowException: Message: Currently focused window has been closed.

selenium.common.exceptions.NoSuchWindowException: Message: 
Currently focused window has been closed.
D:\Anaconda\selenium\webdriver\errorhandler.py:242: NoSuchWindowException

问题原因&解决:

电脑无法在页面自动跳转之后,获取当前页面。
window handle是惰性的,不会自动切换,如果打开了一个新的窗口,想在新窗口上获取某一元素,
需要先手动切换window handle,driver.switch_to.window(xxx_handle)
另,用driver.window_handles可以获取所有窗口句柄
解决:
在跳转页面之后、定位元素之前添加:
handles = driver.window_handles
driver.switch_to.window(handles[-1])
time.sleep(5)
定位到当前窗口句柄,再进行元素定位。窗口句柄是浏览器拥有的,元素没有窗口句柄

注意

如果元素定位失败,要检查一下是不是打开了新的窗口,如果是,则需要切换window handle,
因为它不会自动切换。
### 回答1: selenium.common.exceptions.nosuchwindowexception: message: no such window: target window already closed from unknown error: web view not found 这个错误是由于目标窗口已经关闭或者无法找到网页视图引起的。可能是因为网页加载失败或者浏览器窗口已经关闭。建议检查代码中的窗口句柄是否正确,确保网页已经加载完成,或者重新打开浏览器窗口。 ### 回答2: selenium.common.exceptions.nosuchwindowexception(没有这样的窗口异常)是Selenium测试中一种常见的错误。这种错误表示,Selenium无法找到所需的窗口,可能是由于窗口已被关闭或Selenium无法找到该窗口。 当Selenium执行某些操作(比如点击链接、输入数据等)时,它必须在正确的窗口中执行操作。如果窗口已被关闭,或者Selenium无法找到该窗口,就会出现NoSuchWindowException异常。 在这种情况下,我们可以尝试以下解决方法: 1. 确保窗口已正确打开并处于活动状态。我们可以使用Selenium的getWindowHandle()方法获取当前窗口句柄,并确保在进行任何操作之前,我们已正确切换到所需的窗口。 2. 确保网页没有出现过多的窗口。如果有太多的窗口打开,试图在不活动的窗口上执行操作可能会导致NoSuchWindowException异常。 3. 确保浏览器已正确打开并处于活动状态。我们可以使用Selenium的switchTo().defaultContent()方法切换到默认窗口,然后再次打开所需的窗口。 4. 确保我们正在使用最新版本的Selenium,并检查我们的驱动程序是否与浏览器版本相匹配,确保其与系统兼容。 5. 如果以上方法都不能解决问题,我们可以尝试重新启动浏览器Selenium,或重启系统。 总之,NoSuchWindowException异常可能是由于多种不同的原因导致的,我们需要仔细检查代码、测试页面和相应的驱动程序,以找出问题的根源并解决它。 ### 回答3: selenium.common.exceptions.nosuchwindowexceptionSelenium中的一个常见异常,通常在使用多个窗口或标签页时可能会出现。该异常表示当前要操作的窗口已经关闭,或者该窗口未能被找到。 在这个具体的错误提示中,错误信息是“web view not found”,意味着Selenium无法在当前的视图中找到指定的元素或页面,可能是由于当前网页的结构或元素发生了变化,导致Selenium无法识别或操作。 通常出现这个异常的原因有以下几个: 1. 当前窗口已经关闭:打开多个窗口或标签页时,如果当前要操作的窗口已经被关闭,或者尚未完全加载,Selenium就可能无法操作对应的元素或页面。 2. 网页结构或元素发生变化:如果网页结构或元素发生了变化,比如ID、class、name或其他属性发生了修改,或者元素被删除或者添加等,Selenium将无法识别或操作这些元素。 3. Selenium版本或浏览器版本不同:Selenium浏览器版本不兼容时,会导致Selenium无法正常识别或操作页面元素。 要解决这个异常,需要在编写脚本时注意以下几个方面: 1. 确保要操作的窗口或标签页是存在或者已经加载完成的。 2. 在操作元素前,可以使用元素的显示等待或显式等待,等待元素加载完成后再进行其他操作。 3. 需要定期检查网页的结构和元素是否发生了变化,并及时更新测试脚本。 4. 确保Selenium的版本与浏览器版本兼容,并且在使用Selenium之前需要确保浏览器和其对应的WebDriver已经正确的安装。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值