码迷,mamicode.com
首页 > 其他好文 > 详细

自动化7-实战技巧

时间:2020-03-26 16:35:21      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:wait   cap   指定   手机   自动   smis   div   element   vip   

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

 1 # 点击百度更多产品选项示例
 2 from selenium import webdriver
 3 driver=webdriver.Firefox(executable_path=rD:\BrowserDriver\geckodriver.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:\BrowserDriver\geckodriver.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:\BrowserDriver\geckodriver.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:\BrowserDriver\chromedriver.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-实战技巧

标签:wait   cap   指定   手机   自动   smis   div   element   vip   

原文地址:https://www.cnblogs.com/Free-Ink/p/12573499.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!