python+selenium自动测试之WebDriver的常用API(基础篇一)
Posted 捏不死的小蚂蚁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python+selenium自动测试之WebDriver的常用API(基础篇一)相关的知识,希望对你有一定的参考价值。
基于python3.6,selenium3.141,详细资料介绍查看官方API文档,点击这里
一、对浏览器操作
1 driver = webdriver.Chrome() # 初始化chrome 2 driver1 = webdriver.Firefox() # 初始化Firefox 3 driver2 = webdriver.Ie() # 初始化IE 4 driver3 = webdriver.Edge() # # 初始化Edge 5 driver.get("https://www.baidu.com") # 打开url 6 driver.capabilities[‘version‘] # 获取浏览器version 7 driver.maximize_window() # 将浏览器最大化显示 8 driver.set_window_size(480, 800) # 设置浏览器宽480、高800显示 9 driver.back() # 浏览器后退 10 driver.forward() # 浏览器前进 11 driver.title # 获取当前页面的title 12 driver.current_url # 获取当前页面的URL 13 driver.current_window_handle # 获取当前浏览器窗口的句柄 14 driver.close() # 关闭浏览器,关闭当前浏览器,即最上层那个 15 driver.quit() # 关闭webdriver打开的所有浏览器
各浏览器驱动下载地址,注意版本要对上
Chrome:http://npm.taobao.org/mirrors/chromedriver/
Edge:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Firefox:https://github.com/mozilla/geckodriver/releases
Safari:https://webkit.org/blog/6900/webdriver-support-in-safari-10/
IE:http://selenium-release.storage.googleapis.com/index.html
二、页面元素定位
最好使用id,name的方式定位元素,因为一般这两个元素是全局唯一的;有时候元素不唯一,推荐使用xpath或者css定位,根据个人喜好而定,不推荐使用class
1 # return :WebElement - the element if it was found 2 driver.find_element(By.ID, ‘foo‘) 3 driver.find_element_by_id("foo") 4 driver.find_element_by_name("foo") 5 driver.find_element_by_class_name("foo") 6 driver.find_element_by_tag_name("h1") 7 driver.find_element_by_link_text("Sign In") 8 driver.find_element_by_partial_link_text("Sign") 9 driver.find_element_by_xpath("//div/td[1]") 10 driver.find_element_by_css_selector("#foo")
1 # return: list of WebElement - a list with elements if any was found. An empty list if not 2 driver.find_elements(By.CLASS_NAME, ‘foo‘) 3 driver.find_elements_by_id("foo") 4 driver.find_elements_by_name("foo") 5 driver.find_elements_by_class_name("foo") 6 driver.find_elements_by_tag_name("h1") 7 driver.find_elements_by_link_text("Sign In") 8 driver.find_elements_by_partial_link_text("Sign") 9 driver.find_elements_by_xpath("//div[contains(@class, ‘foo‘)]") 10 driver.find_elements_by_css_selector("#foo")
三、页面元素操作
1 # 清除输入框的默认内容 2 driver.find_element_by_id("foo").clear() 3 # 输入框里输入context 4 driver.find_element_by_id("foo").send_keys("context") 5 # 单击一个按钮 6 driver.find_element_by_id("foo").click() 7 # 提交表单 8 driver.find_element_by_id("foo").submit() 9 # 返回元素的尺寸 10 driver.driver.find_element_by_id("foo").size 11 # 获取元素文本 12 driver.find_element_by_id("foo").text 13 # 返回元素的属性值,元素拥有的任意属性。如果是input的,可以通过获取value值获得当前输入的值 14 driver.find_element_by_id("foo").get_attribute(‘value‘) 15 # 返回元素的结果是否可见,返回结果为True或False 16 driver.find_element_by_id("foo").is_displayed()
四、鼠标事件
1 from selenium.webdriver.common.action_chains import ActionChains 2 # 定位鼠标元素 3 mouse = driver.find_element_by_id("foo") 4 # 对定位到的元素执行鼠标右键操作 5 ActionChains(driver).context_click(mouse).perform() 6 # 对定位到的元素执行鼠标双击操作 7 ActionChains(driver).double_click(mouse).perform() 8 # 对定位到的元素执行鼠标移动到上面的操作 9 ActionChains(driver).move_to_element(mouse).perform() 10 # 对定位到的元素执行鼠标左键按下的操作,注意这里是点击下去不释放 11 ActionChains(driver).click_and_hold(mouse).perform() 12 13 # 鼠标拖放操作 14 element = driver.find_element_by_id("foo1") # 定位元素的原位置 15 target = driver.find_element_by_id("foo2") # 定位元素要移动到的目标位置 16 ActionChains(driver).drag_and_drop(element, target).perform() # 执行元素的移动操作
五、键盘事件
1 from selenium.webdriver.common.keys import Keys 2 3 driver.find_element_by_id("foo").send_keys(Keys.BACK_SPACE) # 删除键(BackSpace) 4 driver.find_element_by_id("foo").send_keys(Keys.SPACE) # 空格键(Space) 5 driver.find_element_by_id("foo").send_keys(Keys.TAB) # 制表键(Tab) 6 driver.find_element_by_id("foo").send_keys(Keys.ESCAPE) # 回退键(Esc) 7 driver.find_element_by_id("foo").send_keys(Keys.ENTER) # 回车键(Enter) 8 driver.find_element_by_id("foo").send_keys(Keys.DELETE) # 删除键(Delete) 9 driver.find_element_by_id("foo").send_keys(Keys.CONTROL, ‘a‘) # 全选(Ctrl+A) 10 driver.find_element_by_id("foo").send_keys(Keys.CONTROL, ‘c‘) # 复制(Ctrl+C) 11 driver.find_element_by_id("foo").send_keys(Keys.CONTROL, ‘x‘) # 剪切(Ctrl+X) 12 driver.find_element_by_id("foo").send_keys(Keys.CONTROL, ‘v‘) # 粘贴(Ctrl+V)
以上是关于python+selenium自动测试之WebDriver的常用API(基础篇一)的主要内容,如果未能解决你的问题,请参考以下文章