我想使用selenium和python处理多个窗口和标签。
我在脚本执行期间遇到以下错误: - (代码最后提到)
{f625f26d-cfcf-442c-b9fc-5e96a199cd43}
C:\Python34\lib\site-packages\selenium-2.47.1- py3.4.egg\selenium\webdriver\remot
e\webdriver.py:525: DeprecationWarning: use driver.switch_to.window instead
warnings.warn("use driver.switch_to.window instead", DeprecationWarning)
{cad6e3cf-9062-408e-a6f1-11e98813dc6c}
import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
class GoogleTabs(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
def test_google_search_page(self):
driver = self.driver
driver.get("http://www.cdot.in")
window_before = driver.window_handles[0]
print (window_before)
driver.find_element_by_xpath("//a[@href='http://www.cdot.in/home.htm']").click()
window_after = driver.window_handles[1]
driver.switch_to_window(window_after)
print (window_after)
driver.find_element_by_link_text("ATM").click()
driver.switch_to_window(window_before)
def tearDown(self):
self.driver.close()
if __name__ == "__main__":
unittest.main()
答案 0 :(得分:1)
警告说
DeprecationWarning:改为使用driver.switch_to.window
你需要改变你的
driver.switch_to_window
与
driver.switch_to.window
但请想一想:这是警告,而不是错误!您的代码应该可以运行,它只是告诉您该方法已被弃用。
答案 1 :(得分:0)
您收到警告消息,对于新版本的硒,该方法已更改。
而不是使用:driver.switch_to_window(window)
尝试使用:driver.switch_to.window
window
是你的变量。
答案 2 :(得分:0)
我提出了一种非常简单的方法来切换窗口,而不用自己玩手柄的任何麻烦。 https://gist.github.com/ab9-er/08c3ce7d2d5cdfa94bc7
def change_window(browser):
"""
Simple window switcher without the need of playing with ids.
@param browser: Current browser instance
"""
curr = browser.current_window_handle
all_handles = browser.window_handles
for handle in list(set([curr]) - set(all_handles)):
return browser.switch_to_window(handle)