分类
文章

使用Selenium和Python在Windows之间切换

在本Selenium Python教程中 ,我们将学习在Windows之间切换。在网站上工作时,我们很可能会打开大量窗口。

每个窗口都可能要求我们执行一些操作以完成端到端的流程。为此,我们应该能够在它们之间切换。

我们还需要切换控件,然后执行所需的操作,因为默认情况下,焦点仍保留在父窗口上。

使用Selenium Python在Windows之间切换

在Windows之间切换:Selenium Python

WebDriver支持使用”switch_to_window()”方法在这些窗口之间移动。


driver.switch_to_window("window_handle")

现在,Webdriver将解释对驱动程序的所有调用均来自上述窗口。

让我们看一个示例代码以了解其工作原理。


from selenium import webdriver
 from selenium.webdriver.common.keys import Keys
 from selenium.webdriver.common.by import By
 import time

#open the first window
 driver = webdriver.Firefox()
 driver.maximize_window()
 driver.get("http://www.facebook.com")

#get the window handle after the window has opened
 window_before = driver.window_handles[0]

window_before_title = driver.title
 print(window_before_title)

#open a new window
 driver.execute_script("window.open('http://www.twitter.com', 'new window')")

#get the window handle after a new window has opened
 window_after = driver.window_handles[1]

#switch on to new child window
 driver.switch_to.window(window_after)
 time.sleep(10)

window_after_title = driver.title
 print(window_after_title)

#Compare and verify that main window and child window title don't match
 if window_before_title != window_after_title:
 print('Context switched to Twitter, so the title did not match')
 else:
 print('Control did not switch to new window')

#switch back to original window
 driver.switch_to.window(window_before)

#Verify that the title now match
 if window_before_title == driver.title:
 print('Context returned to parent window. Title now match')

print(driver.title)

在上述情况下,我们正在从Facebook迁移到Twitter。之后,我们也使用“switch_to.window()”命令将上下文也从Facebook移至Twitt。

接下来,我们比较了两个网页的标题,以验证上下文已移至Twitter时,它现在已更改。

最后,上下文被转移到Facebook,现在我们验证标题是否匹配。

快速总结–在Windows之间切换

了解如何使用Selenium Python在Windows之间切换非常重要。您可以重新使用此技术来解决项目中的实时用例。

发表评论

电子邮件地址不会被公开。 必填项已用*标注