携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情
话不多说,咱们就昨天的内容接着往下讲:
每一次执行用例的时候都会要打开一个浏览器(现在市场上主要用的浏览器是Chrome,Edge,Firefox这三个浏览器),如果不再界面打开一个浏览器能不能做到呢,这种情况下我们可以使用无头浏览器,使用无头浏览器后我们执行用例时就不会在界面去打开一个浏览器,
无头浏览器可以被用来自动执行恶意任务。最常见的形式是做网络爬虫,或伪装访问量,或探测网站漏洞。下面就是selenium无头浏览器的配置代码:
补充(无头浏览器):
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('headless')
d = webdriver.Chrome(options=options)
d.get('www.baidu.com')
print(d.current_url)
print(d.title)
d.quit()
获取属性:get_attribute() driver.find_element_by_xpath("//div[@id='J_section_0']/a").get_attribute("href")
设置窗口尺寸:set_window_size(720,420)
4.2 鼠标事件 由selenium的ActionChains类完成模拟鼠标操作。主要操作流程:
- 存储鼠标操作
- perform()来执行鼠标操作 支持的操作如下: double_click 双击操作 context_click 右键操作 drag_and_drop 拖拽操作。左键按住拖动某个元素到另外一个区域,然后释放。 move_to_element() 鼠标悬停 例如: from selenium.webdriver.common.action_chains import ActionChains a = d.find_element(By.ID,'range') b = d.find_element(By.XPATH,'//input[@value="come here"]') ActionChains(d).drag_and_drop(a,b).perform()
消息框处理: d.get('http://192.168.8.161:8081/index/') d.switch_to.frame("leftFrame") d.find_element(By.XPATH,'//input[1]').click() alert = d.switch_to.alert alert.accept() d.switch_to.default_content()
上传文件操作(下面试以百度的搜索功能为案例)
import time
from time import sleep
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
driver.find_element_by_css_selector('.soutu-btn').click()
sleep(3)
driver.find_element_by_css_selector('.upload-pic').send_keys('E:\\shuijing.png')
sleep(3)
driver.quit()
在自动化测试的过程中,难免会应用到翻页键,但是webdriver提供的方法都是操作当前页面可见的元素,对于未在当前范围展示的翻页键,该如何操作呢?我们可以使用JavaScript操作浏览器的滚动条。 #拖动滚动条至底部
js1="document.documentElement.scrollTop=10000"
driver.execute_script(js1)
#拖动滚动条至顶部
js2="document.documentElement.scrollTop=0"
driver.execute_script(js2)