美文网首页python selenium web自动化测试
(13)python selenium 多页面切换

(13)python selenium 多页面切换

作者: JP0001 | 来源:发表于2019-04-15 17:50 被阅读0次

    多个页面的处理

    我们在打开网页的操作过程中,会不只打开一个网页,会有多个网页。那么多个网页我们是怎么处理的呢?
    例子:
    比如说我们百度 搜狗,点击打开搜狗,那么浏览器上面就有两个页面,现在的主页面是百度这个页面,我们还不能操作到搜狗的这个页面,这个时候我们就需要使用切换页面的来操作。切换前你需要获取到页面的handel,下面的代码就让我们来操作页面的切换


    baidu2.PNG
    from selenium import webdriver
    import time
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.support.select import Select
    
    # ******************************************
    # 百度 两个页面的之间的切换操作
    driver = webdriver.Chrome()
    driver.get("https://www.baidu.com/")
    driver.maximize_window()
    
    # 输入法内容
    driver.find_element_by_id("kw").send_keys("搜狗")
    
    # 点击搜索
    driver.find_element_by_id("su").click()
    
    # 百度页面的 handle
    main_page = driver.current_window_handle
    time.sleep(2)
    
    # 点击第一个结果 //*[@id="1"]/h3/a
    driver.find_element_by_xpath('//*[@id="1"]/h3/a').click()
    
    time.sleep(2)
    # 获取所有的页面包括百度和Sogou,这个时候有两个页面
    all_page = driver.window_handles
    
    
    time.sleep(2)
    for one_page in all_page:
        if one_page!=main_page:
            driver.switch_to.window(one_page)
            print(driver.title)
    # ******************************************
    
    结果:
    C:\Users\myuser\mail_app\Scripts\python.exe D:/简书/selenium/0001.py
    搜狗搜索引擎 - 上网从搜狗开始
    
    Process finished with exit code 0
    
    

    多个页面切换就是这样,可以举一反三,如果是3个或者3个以上的页面呢?

    相关文章

      网友评论

        本文标题:(13)python selenium 多页面切换

        本文链接:https://www.haomeiwen.com/subject/pkafwqtx.html