无法切换到新窗口并使用 Selenium python 验证内容

问题描述 投票:0回答:1

我正在使用 Selenium Python 自动化 saas 应用程序,并且我需要在单击按钮后验证新窗口内容。下面是窗口的截图。

enter image description here

在图像中,我单击“可打印版本”按钮,新窗口的标题为“关于:空白 - Google Chrome”。

我尝试了以下代码,但没有一个起作用,

all_windows = driver.window_handles
driver.switch_to.window(all_windows[1])

我也尝试过这个

driver.switch_to.window(driver.window_handles[1])

我什至尝试循环并找出答案,但没有成功

all_windows = driver.window_handles
for window_handle in all_windows:
    if window_handle != driver.current_window_handle:
        driver.switch_to.window(window_handle)
        break

尝试切换到新打开的窗口时,所有代码都会冻结。 系统超时而不执行任何其他代码。

任何想法都会有帮助

python selenium-webdriver
1个回答
0
投票

我遇到了同样的问题,就我而言,它有助于在 js 脚本中创建窗口后立即添加行

<your_window>.document.close();

在我的例子中,窗口是使用

window.open()
函数创建并打开的,然后使用
document.write()
函数填充内容。不关闭它会导致冻结驱动程序上调用的任何方法,包括简单的
.getTitle()
方法。

也许您可以尝试在测试代码中直接调用此类代码来执行此操作:

((JavascriptExecutor) driver).executeScript("window.document.close();");

但我不能保证这会有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.