• selenium 窗口句柄之间的切换


    以前使用selenium时都是在单窗口的模式下,本次新增多窗口下的窗口之间切换

    from selenium import webdriver      

    from selenium.webdriver.common.keys import Keys      

    import selenium.webdriver.support.ui as ui      

    from selenium.webdriver.common.action_chains import ActionChains

    #完成点击下载ppt

    def get_ppt_download():

        start_url = 'http://www.hjenglish.com/dl/bec/'

        driver = webdriver.Chrome()

        driver.maximize_window()

        wait = ui.WebDriverWait(driver,10)

        driver.get(start_url)

        h = driver.current_window_handle

        driver.find_elements_by_xpath('//a[@class="fastLogin"]')[0].click()

        driver.find_elements_by_xpath('//input[@class="hp-username"]')[0].send_keys("")  #引号内输入用户名

        driver.find_elements_by_xpath('//input[@class="hp-password"]')[0].send_keys("")  #引号内输入密码

        driver.find_elements_by_xpath('//button[@class="hp-btn hp-btn-green"]')[0].click()

        time.sleep(5)

        for i in driver.window_handles:

            if i == h:

                driver.switch_to_window(h)

                article_list = driver.find_elements_by_xpath('//ul[@id="article_list"]/li')

                for index in range(0,len(article_list)):

                    for m in driver.window_handles:

                        if m == h:

                            driver.switch_to_window(h)

                            article_list[index].find_elements_by_xpath('./div[@class="article_list_info"]/h2/a[@class=" a_article_title"]')[0].click()

                    for t in driver.window_handles:

                        if t != h:

                            driver.switch_to_window(t)

                            p = driver.find_elements_by_xpath('//div[@class="btn_downpage_area"]/a[@class="btn_downpage"]')

                            if len(p):

                                p[0].click()

                                driver.find_elements_by_xpath('//ul[@id="down_linklist"]/li[1]')[0].click()

                                time.sleep(5)

                            driver.close()

                        else:

                            driver.switch_to_window(h)     

                            time.sleep(3)

                            driver.close()

    本次测试的网站是http://www.hjenglish.com/dl/bec/

    主要是中间列表ppt的下载

    经测试,可以正常实现单个ppt的点击下载逻辑,但是在循环点击其他ppt时还有点问题,有待解决。

  • 相关阅读:
    测试工程师用 Shell 定位 Bug 的正确姿势 | 福利
    基于 JMeter 完成 Dubbo 接口的测试
    门票免费送 | 40+干货议题及重磅讲师阵容全新升级
    Java or Python?测试开发工程师如何选择合适的编程语言?
    测试开发之路 | 希望你们在新家过的更好
    ARMS实践|日志在可观测场景下的应用
    阿里云 ACK 容器服务生产级可观测体系建设实践
    Kruise Rollout v0.2.0 版本发布:支持 Gateway API、StatefulSet 分批发布等能力
    解析 RocketMQ 业务消息“顺序消息”
    1 分钟在 Serverless 上部署现代化 Deno Web 应用
  • 原文地址:https://www.cnblogs.com/niansi/p/6623055.html
Copyright © 2020-2023  润新知