zoukankan      html  css  js  c++  java
  • 浏览器查看信息技巧和弹出框处理、多窗口切换

    浏览器查看信息技巧?

        webdriver对象的一些方法:

             * 获取当前窗口的title   driver.title

             * 获取当前窗口的地址url  driver.current_url

             * 随着用户的操作  title和current_url会变化

             * 截屏     driver.get_screenshot_file('ssl.png')

         关于双反斜杠和r的解释:

              双反斜杠'\'是为了防止转义  我们常用 '/'来表示相对路径  用 ‘’来表示绝对路径

              写法一:path = ‘C:\adb\selenium’

              写法二:path =r 'C:adbselenium'

              写法三:path = 'C:/adb/selenium'

     

    代码实现:

    from selenium import webdriver

    # 指定是Chrome驱动

    driver = webdriver.Chrome(r"C:webdriverchromedriver.exe")

    # driver.implicitly_wait(10)   隐式等待

    driver.get('https://www.baidu.com')

    # driver.get('https://music.163.com')

    # print(driver.title)

    # print(driver.current_url)

    # driver.get_screenshot_as_file('c:\pei.png')

    # 如果我想部分截屏,可以通过查找元素来定位

    ele = driver.find_element_by_css_selector('#su')

    ele.screenshot('button.png')    # 百度一下的图片

    driver.quit()

    =========================================================================================================================

    切换窗口?

         切换到新的窗口里面操作:

                * 循环遍历  driver.window_handles

                * driver.switch_to.window(handle)方法切入新窗口

                * 检查该窗口特点,是否为要切入的那个

          切换到最初的窗口:

                * 保存主窗口的handle   driver.current_window_handle

          关闭窗口:

                * close方法

         

     

     

    *注意*:close()与quit()方法发热区别:close()是关闭当前窗口,而quit()是退出浏览器所有的窗口,但是不会退出chromedriver驱动,但仍处于代码可执行状态。

    代码实现:

    import time

    from selenium import webdriver

    driver = webdriver.Chrome(r"C:webdriverchromedriver.exe")

    driver.implicitly_wait(10)

    driver.get('https://www.baidu.com/')

    print(driver.title)

    driver.find_element_by_id('kw').send_keys('松勤 ')

    time.sleep(1)

    driver.find_element_by_css_selector('div[id="1"] h3.t>a').click()

    time.sleep(1)

    print(driver.title)

    # 获取当前页面的句柄

    main_handle = driver.current_window_handle

    # 获取所有句柄

    handles = driver.window_handles

    for handle in handles:

          print(handle)

          driver.switch_to.window(handle)

         if '松勤网 - 松勤软件测试' in driver.title:

                print('成功跳转')

                break

    # 点击全部课程分类

    driver.find_element_by_css_selector('a[href="/course/explore"]').click()

    time.sleep(5)

    # 切换到首页句柄

    driver.switch_to.window(main_handle)

    print(driver.title)

     

    driver.quit()

     

    =========================================================================================================================


    弹出框处理?

         对话框来说一般有三种:alert     confirm       prompt

         操作方法:driver.switch_to.alert.accept()  # 点击OK

                       driver.switch_to.alert.text    # 得到对话框内容

                       driver.switch_to.alert.dismiss()  # 点击Cancel

                       driver.switch_to_alert.send_keys()   # 输入内容

    下面附上a1.html代码截图:

                               

         

    代码实现:

    import time

    from selenium import webdriver

    driver = webdriver.Chrome(r"C:webdriverchromedriver.exe")

    # driver.implicitly_wait(10)

    driver.get('file:///C:/Users/Administrator/PycharmProjects/1120/web_driver/lesson4/al.html')

    driver.find_element_by_id('b3').click()

    time.sleep(3)

    # driver.switch_to.alert.accept()   # 点击OK的弹窗

    # driver.switch_to.alert.dismiss()  # 点击Cancel(有确定、取消的弹窗)

    txt = driver.switch_to.alert.text    # 得到对话框内容

    print(txt)

    driver.switch_to.alert.send_keys('天天向上')

    driver.switch_to.alert.accept()

    # driver.find_element_by_id('other').click()

    # driver.quit()

     

    =========================================================================================================================

    刷新页面、前进、后退?

        * 刷新页面  refresh

        * 前进  forword

        * 后退  back

    代码实现:

    import time

    from selenium import webdriver

    driver = webdriver.Chrome(r"C:webdriverchromedriver.exe")

    # ----------------------------------

    driver.get('http://check.ytesting.com')

    driver.find_element_by_id('username').send_keys('sdfdsf')

    driver.find_element_by_id('password').send_keys('sdfdsf')

    time.sleep(2)

    # driver.refresh()

    driver.back()

    driver.forward()

    # ----------------------------------

    input('press any key to quit...')

    driver.quit()   # 浏览器退出

  • 相关阅读:
    关于在MyEclipse中页面中文乱码的问题
    如何用Navicat for MySQL 将mysql中的数据库导出,导入。
    淘宝链接池的配置
    c3p0配置
    人生规划
    spring问题: Unable to validate using XSD: Your JAXP provider
    List数组和Set集合
    Tomcat6内存不足问题及解决方法
    清华校长送给毕业生的五句话
    个人图文理解类的封装
  • 原文地址:https://www.cnblogs.com/peipei-Study/p/11890117.html
Copyright © 2011-2022 走看看