Skip to content

selenium

18570580798 edited this page Apr 19, 2018 · 1 revision

1.Selenium 自动化测试Web 版 1.1 自动化测试流程 系统评估==> 需求筛选、评审==> 用例设计==>脚本实现==>执行、报告分析==> 用例维护更新==>收益分析 1.2 环境搭建 Python 安装https://www.python.org/getit/ 环境变量配置path 添加两个;C:\Software\Python35;C:\Software\Python35\Scripts; Selenium 安装pip install selenium WebDriver 驱动将所需要的驱动放入path 环境变量的文件夹中

2.Selenium 常用操作 2.1 浏览器操作 2.1.1 实例化浏览器 #启动默认 from selenium import webdriver #引入包 driver = webdriver.Chrome() #实例化浏览器 #指定驱动位置启动 driver=webdriver.Chrome(r'C:\Windows\System32\chromedriver.exe') driver=webdriver.Firefox(executable_path="c://geckodriver") driver=webdriver.Ie(executable_path="c://geckodriver") 2.1.2 最大化浏览器 driver.maximize_window() 2.1.3 设置浏览器大小 driver.set_window_size(480, 800) 2.1.4 控制浏览器前进、后退 driver.back()#后退 driver.forward()前进 2.1.5 打开网页 driver.get(URL)

新开一个窗口,通过执行js 来新开一个窗口

js='window.open("https://www.sogou.com");' driver.execute_script(js) 2.1.6 关闭浏览器 driver.close() # 关闭浏览器 2.1.7 获取网页标题 driver.title # 获取网页的title 2.1.8 获取网页的URL driver.current_url # 获取网页的URL 2.2 元素定位,获取元素对象 id name class name tag name link text partial link text xpath css selector 2.2.1 id 元素定位 driver.find_element_by_id('kw') 2.2.2 name 元素定位 driver.find_element_by_name(‘wd’) 2.2.3 class name 元素定位 driver.find_element_by_class_name(‘s_ipt) 2.2.4 tag name 元素定位(最不靠谱) driver.find_element_by_tag_name(‘input ‘) 2.2.5 link_text 元素定位 新闻 driver.find_element_by_link_text('新闻') 2.2.6 partial link text 元素定位

2.3.2 WebElement 常用方法 size 返回元素的尺寸 text 获取元素的文本 get_property() 获得属性值某个事物固有的属性,或区别于其他事物的特征,强调“专” get_attribute() 获得属性值有多少参数,或事物拥有的参数,不用它来特指某事物,只强调“有”。 is_displayed() 返回元素的结果是否可见 size=driver.find_element_by_id("kw").size #返回百度输入框的宽高 text=driver.find_element_by_id("kw").text #返回百度输入框的文本信息 attribute=driver.find_element_by_id("kw").get_ property ('type') #返回元素的属性值,可以id name type 等任何 属性 result=driver.find_element_by_id("kw").is_displayed() #元素的结果是否可见,返回结果为True 或False 2.4 键盘操作 from selenium.webdriver.common.keys import Keys driver.find_element_by_id('kw').send_keys(Keys.BACK_SPACE) #按BACKSPACE 删除一个字符 send_keys(Keys.BACK_SPACE) 删除键(BackSpace) send_keys(Keys.SPACE) 空格键(Space) send_keys(Keys.TAB) 制表键(Tab) send_keys(Keys.ESCAPE) 回退键(Esc) send_keys(Keys.ENTER) 回车键(Enter) send_keys(Keys.CONTROL,'a') 全选(Ctrl+A) send_keys(Keys.CONTROL,'c') 复制(Ctrl+C) 2.5 鼠标事件(ActionChains) context_click() 右击 double_click() 双击 drag_and_drop() 拖动 move_to_element() 鼠标悬停在一个元素上 click_and_hold() 按下鼠标左键在一个元素上 2.5.1 右击 from selenium.webdriver.common.action_chains import ActionChains # 引入ActionChains 包 ele = driver.find_element_by_id("kw") # 获取元素 ActionChains(driver).context_click(ele).perform() # 对ele 元素进行双击 2.5.2 双击 ele = driver.find_element_by_id("kw") # 获取元素 ActionChains(driver).double_click(ele).perform() # 双击ele 元素 2.5.3 拖动 ele = driver.find_element_by_id("kw") # 获取元素 target = driver.find_element_by_id("sk") # 获取目标元素 ActionChains(driver).drag_and_drop(ele, target).perform() # 将元素ele 拖动到target 的位置 2.5.4 鼠标悬停 ele = driver.find_element_by_id("kw") # 获取元素 ActionChains(driver).move_to_element(ele).perform() # 鼠标悬停在ele 元素 2.5.5 按下鼠标左键 ele = driver.find_element_by_id("kw") # 获取元素 ActionChains(driver).click_and_hold(ele).perform() # 在ele 元素上按下鼠标左键

Clone this wiki locally