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()   # 浏览器退出

  • 相关阅读:
    MySql 用户 及权限操作
    MAC 重置MySQL root 密码
    在mac系统安装Apache Tomcat的详细步骤[转]
    Maven:mirror和repository 区别
    ES6 入门系列
    转场动画CALayer (Transition)
    OC 异常处理
    Foundation 框架
    Enum枚举
    Invalid App Store Icon. The App Store Icon in the asset catalog in 'xxx.app' can’t be transparent nor contain an alpha channel.
  • 原文地址:https://www.cnblogs.com/peipei-Study/p/11890117.html
Copyright © 2011-2022 走看看