自动化7-实战技巧

Posted free-ink

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动化7-实战技巧相关的知识,希望对你有一定的参考价值。

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

 1 # 点击百度更多产品选项示例
 2 from selenium import webdriver
 3 driver=webdriver.Firefox(executable_path=rD: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=rD: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=rD: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(rD: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方法传入要上传的文件路径。

 

以上是关于自动化7-实战技巧的主要内容,如果未能解决你的问题,请参考以下文章

Android课程---Android Studio使用小技巧:提取方法代码片段

VS2015使用技巧 打开代码片段C#部分

小技巧

[原创]实战之Ansible生成Apache多主机配置

26个jQuery代码片段使用技巧

VS中添加自定义代码片段——偷懒小技巧