Web 自动化 -- 网页 frame 与多窗口处理

 

 

 

 

 window_handle 存储着所有的窗口(列表形式存储),可打印出来看看是需要用哪个窗口,然后用switch to window 调用对应索引的窗口

 

def test_window(self):
    self.driver.get("https://www.baidu.com/")
    self.driver.find_element(By.ID,"s-top-loginbtn").click()
    # print(self.driver.current_window_handle)
    self.driver.find_element(By.ID,"TANGRAM__PSP_11__regLink").click()
    time.sleep(3)
    # print(self.driver.current_window_handle)
    windows = self.driver.window_handles
    self.driver.switch_to.window(windows[-1]) #跳转到注册的窗口
    self.driver.find_element(By.ID,"TANGRAM__PSP_4__userName").send_keys("username")
    self.driver.find_element(By.ID,"TANGRAM__PSP_4__phone").send_keys("13511111")

    self.driver.switch_to.window(windows[0])#跳转回登录的窗口
    self.driver.find_element(By.ID,"TANGRAM__PSP_11__userName").send_keys("111111")
    self.driver.find_element(By.ID,"TANGRAM__PSP_11__password").send_keys("1111")
    time.sleep(3)

 

 

 

 

 

代码案例:

 

def test_frame(self):
    self.driver.get("https://sahitest.com/demo/docWriteIFrame.htm")
    self.driver.find_element(By.XPATH,"//input[@value='Click me (doc closed)']").click() #点击click me按钮出现一个frame
    self.driver.switch_to.frame("iframe1") #切换frame
    self.driver.find_element(By.LINK_TEXT,"My link").click() #点击frame里面的my link按钮
    time.sleep(2)
    self.driver.switch_to.parent_frame() #返回到主frame
    self.driver.find_element(By.XPATH, "//input[@value='Click me (doc not closed)']").click() #点击最上层的另一个按钮

    time.sleep(2)

 

posted @ 2022-06-15 22:32  lms21  阅读(85)  评论(0)    收藏  举报