zoukankan      html  css  js  c++  java
  • 自动化7-实战技巧

    一、ActionChains类:提供了一些特殊的动作的模拟,比如鼠标右击,双击,移动鼠标至某元素,鼠标拖拽等。

     1 # 点击百度更多产品选项示例
     2 from selenium import webdriver
     3 driver=webdriver.Firefox(executable_path=r'D:BrowserDrivergeckodriver.exe')
     4 driver.implicitly_wait(5)
     5 driver.get('http://www.baidu.com')
     6 # ActionChains类,用于提供特殊动作的一些操作,导入这个包
     7 from selenium.webdriver.common.action_chains import ActionChains
     8 ac=ActionChains(driver)
     9 # move_to_element:鼠标移动到 元素上
    10 ac.move_to_element(
    11     driver.find_element_by_css_selector('[name="tj_briicon"]')
    12 ).perform()

    二、冻结界面

      有些网站上的元素,是鼠标悬浮显示出的内容,用selenium自动化点击显示的某图标时,需要f12查看该元素的特征。移开鼠标就无法查看。

      对于此,可以在开发者工具栏console中执行:  setTimeout(function(){debugger},5000)

      表示5000毫秒之后,执行debugger命令。执行后进入debug状态,该特性是界面被冻住。

    三、弹出对话框

      弹出对话框有三种类型:alert(警告),confirm(确认)、prompt(提示)

      1)alert:显示通知信息,只需要模拟用户点击OK即可;

          这一操作,selenium提供方法进行:

            driver.switch_to.alert.accept()

          若要程序获取弹出对话框中的信息内容,通过:

            driver.switch_to.alert.text

    1 from selenium import webdriver
    2 wd=webdriver.Firefox(executable_path=r'D:BrowserDrivergeckodriver.exe')
    3 wd.implicitly_wait(5)
    4 wd.get('http://cdn1.python3.vip/files/selenium/test4.html')
    5 wd.find_element_by_id('b1').click()
    6 # wd.switch_to.alert.accept() 同上一句同样意思:模拟用户点击OK按钮
    7 # 获取弹出对话框中的信息内容 并打印出来
    8 print(wd.switch_to.alert.text)

      

      2)confirm:让用户确认是否要进行某个操作;

            confirm由两个选项:OK、Cancel

            selenium提供的方法是:

              * OK:driver.switch_to.alert.accept()

              * Cancel: driver.switch_to.alert.dismiss()

     1 from selenium import webdriver
     2 wd = webdriver.Firefox(executable_path=r'D:BrowserDrivergeckodriver.exe')
     3 wd.implicitly_wait(5)
     4 wd.get('http://cdn1.python3.vip/files/selenium/test4.html')
     5 wd.find_element_by_id('b2').click()
     6 print(wd.switch_to.alert.text)
     7 wd.switch_to.alert.accept()
     8 wd.find_element_by_id('b2').click()
     9 # 点击取消按钮
    10 wd.switch_to.alert.dismiss()

      3)prompt : 出现这个需要用户输入一些信息,提交上去。

            当需要输入信息时,可以调用 driver.switch_to.alert.send_keys()

     1 from selenium import webdriver
     2 driver = webdriver.Chrome(r'D:BrowserDriverchromedriver.exe')
     3 driver.implicitly_wait(5)
     4 driver.get('http://cdn1.python3.vip/files/selenium/test4.html')
     5 # --- prompt ---
     6 driver.find_element_by_id('b3').click()
     7 # 获取 alert 对象
     8 alert = driver.switch_to.alert
     9 # 打印 弹出框 提示信息
    10 print(alert.text)
    11 # 输入信息,并且点击 OK 按钮 提交
    12 alert.send_keys('web自动化 - selenium')
    13 alert.accept()
    14 # 点击 Cancel 按钮 取消
    15 driver.find_element_by_id('b3').click()
    16 alert = driver.switch_to.alert
    17 alert.dismiss()

    四、窗口控制

      获取窗口大小:driver.get_window_size()

      改变窗口大小:driver.set_window_size(x,y)

      获取当前窗口标题:driver.title()

      获取当前窗口URL地址:driver.current_url

      截屏: get_screenshot_as_file()

      手机模式:desired_capabilities参数,指定一手机模式打开chrome浏览器

      上传文件:一般这种上传功能是通过type属性的file的HTML input元素实现的;

           selenium需要先定位到该input元素,通过send_keys方法传入要上传的文件路径。

  • 相关阅读:
    植物大战僵尸智慧树和金币的简单破解(二)
    植物大战僵尸任意阳光的简单破解(一)
    Bash漏洞分析
    树莓派4 安装vim8.2 编译python3支持
    JAVA实现剑指offer 大神博主网址
    IO流+集合完成功能
    Java学习IO流处理
    Java中拷贝图片IO流
    Java学习list集合练习二
    java学习list集合训练
  • 原文地址:https://www.cnblogs.com/Free-Ink/p/12573499.html
Copyright © 2011-2022 走看看