300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > python自动切换链接_python+selenium自动化(四)之selenium切换窗口

python自动切换链接_python+selenium自动化(四)之selenium切换窗口

时间:2020-03-27 08:54:16

相关推荐

python自动切换链接_python+selenium自动化(四)之selenium切换窗口

当我们点击某个链接时,切换换到另一个窗口,这时就需要跟随切换到新打开的页面,去定位元素。

1、获取当前页面句柄 current_window_handle

importtimefrom selenium importwebdriver

driver=webdriver.Chrome()

driver.get("")

driver.maximize_window()

handle= driver.current_window_handle #获取当前页面句柄

print(handle)

driver.quit()

2、当我们点击了某个链接,打开新窗口时,这时取全部窗口的句柄 window_handles

from selenium importwebdriver

driver=webdriver.Chrome()

driver.get("")

driver.maximize_window()

driver.find_element_by_xpath('//*[@id="s-top-left"]/a[5]').click() #点击百度首页的贴吧,新窗口

all_handles =driver.window_handlesprint(all_handles)

driver.quit()

这里虽说开了新窗口,但是句柄还是在百度首页,也就是说要在百度帖吧页面的操作,元素的定位都是在百度首页,这时就需要切换句柄,也就是切换到百度贴吧这个页面。

from selenium importwebdriver

driver=webdriver.Chrome()

driver.get("")

driver.maximize_window()

handle=driver.current_window_handleprint(handle) #百度首页的句柄

driver.find_element_by_xpath('//*[@id="s-top-left"]/a[5]').click() #切换到百度贴吧页面

all_handles =driver.window_handlesprint(all_handles) #获取所有窗口的句柄

now_handle = driver.current_window_handle #这个时候窗口已经切换到百度贴吧了,但是句柄还是百度首页的

print(now_handle)

3、这时,句柄切换到百度贴吧页面 , 这里有两个方法,老版本的是 switch_to_window , 新版本的是 switch_to.window,(这里选择我是用的新的,个人习惯)

需要穿一个参数,也就是句柄参数。

from selenium importwebdriver

driver=webdriver.Chrome()

driver.get("")

driver.maximize_window()

handle=driver.current_window_handleprint(handle) #百度首页的句柄

driver.find_element_by_xpath('//*[@id="s-top-left"]/a[5]').click() #切换到百度贴吧页面

all_handles =driver.window_handlesprint(all_handles) #获取所有窗口的句柄

new_handles = all_handles[-1] #从所有句柄的集合中,获取最后那个,也就是最新的了

driver.switch_to.window(new_handles) #然后当参数传递进来

now_handles = driver.current_window_handle #查看现在的句柄

print(now_handles)

driver.quit()

查看结果,可以看到句柄已经切换到新窗口

可以看到窗口句柄已经切换过来了,可以在新窗口操作元素了,快去试试吧。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。