【pytest框架之web自动化测试】---selenium中多窗口切换

当测试过程中出现多个窗口时,元素定位和操作需要考虑是否在指定窗口执行了,否则容易出现元素定位不到的情况

举个例子:baidu首页--点击登录--点击用户注册,再返回第一个窗口点击用户名登录

 

 

 

 

 

这里需要用到driver.window_handles方法,保存所有已打开的窗口,按需要进行切换,然后到对应窗口定位元素
from Testdev.pytest.setup_teardown.test_login import login


class Testwindows(login):   #继承login类
    def test_windows(self):
        self.driver.find_element_by_xpath('//*[@id="u1"]/a').click()  #点击登录按钮
        self.driver.find_element_by_xpath('//*[@id="passport-login-pop-dialog"]/div/div/div/div[3]/a').click()#点击立即注册按钮
        handles=self.driver.window_handles #保存所有已打开窗口列表
        self.driver.switch_to_window(handles[0])  #选择需要操作的窗口
        self.driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_11__footerULoginBtn"]').click() #点击用户名登录

  

posted @ 2021-02-25 15:54  第五个季节xjw  阅读(216)  评论(0)    收藏  举报