Selenium-语法
selenium的开始–webdriver
如果看到这里,你需要知道怎么安装自动化测试需要的环境的话,这么来就OK了。
pip install selenium
关于驱动不知道哪里下载的,可以访问
Chromedriver(Chrome):https://sites.google.com/a/chromium.org/chromedriver/home
geckodriver(Firefox):https://github.com/mozilla/geckodriver/releases
IEDriverServer(IE):http://selenium-release.storage.googleapis.com/index.html
operadriver(Opera):https://github.com/operasoftware/operachromiumdriver/releases
把对应的驱动下载放到python3的安装目录下就OK了。不过,这只是局限于本地的调试使用,后面部署到服务器中,还是推荐使用无头浏览器来完成自动化测试。
在写Selenium的代码之前,我们都需要导入Selenium的webdriver,这是最开始的第一步。
from selenium import webdriver
之后,就可以使用selenium了。定义需要启动的浏览器。
driver = webdriver.Chrome() //打开Chrome浏览器
driver = webdriver.Firefox() //打开Firefox浏览器
driver = webdriver.Ie() //打开IE浏览器
访问需要测试页面。
driver.get("test url") //test url为需要传进去的url
实现上面的步骤就已经可以正常打开需要测试的页面了。接下来就是对页面进行操作了,这也是Selenium强大的其中一点,各种API给开发者更容易了解。
selenium定位元素–find_element
8种定位元素,可以根据页面元素的不同,使用不同的方法:
方法 | 使用 |
---|---|
ID定位 | driver.find_element_by_id() |
name定位 | driver.find_element_by_name() |
classname定位 | driver.find_element_by_class() |
tag定位 | driver.find_element_by_tag_name() |
text定位 | driver.find_element_by_text() |
partial link text定位 | driver.find_element_by_partial_link_text() |
xpath定位 | driver.find_element_by_xpath()
|
css定位 | driver.find_element_by_css_selector()
|
selenium的操作–driver.action()
动作 | 方法 |
---|---|
点击 | driver.find_element(*loc).click() |
确认点击 | driver.find_element(*loc).submit() |
输入文本 | driver.find_element(*loc).send_keys("value") |
清除文本 | driver.find_element(*loc).clear() |
显示等待 | WebDriverWait(driver,5,0.5).until(EC.presence_of_element_located((By.ID,'value'))) |
隐式等待 | driver.implicitly_wait(seconds) |
强行等待 | time.sleep(seconds) |
表单切换 | driver.switch_to.frame() |
窗口切换 | driver.switch_to.window() |
弹窗处理 | 点击弹窗:alert = driver.switch_to.alert alert.accept() 获取窗口内容:alert.text() |
获取title | driver.title |
获取文本 | driver.find_element(*loc).text |
获取属性值 | driver.find_element(*loc).get_attribute(name) |
关闭浏览器 | driver.close() |
关闭窗口 | driver.quit() |
页面截图 | driver.get_screenshot_as_file(imageName) |
这个事件的操作也可以在一些情况下,操作变得简单。
首先就是导入Action的库
from selenium.webdriver.common.action_chains import ActionChains
动作 | 方法 |
---|---|
鼠标右击 | element=driver.find_element_by_css_selector("#kw") ActionChains(driver).context_click(element).perform() |
鼠标双击 | element=driver.find_element_by_css_selector("#kw") ActionChains(driver).double_click(DoubleClick).perform() |
鼠标悬停 | element=driver.find_element_by_css_selector("#kw") ActionChains(driver).move_to_element(DoubleClick).perform() |
动作 | 方法 |
---|---|
执行js | driver.extcute_javascript(js) |
滚动页面 | js = "window.scrollTo(100,450);" driver.execute_script(js) |
滚动到顶部 | js = "window.scrollTo(0,0);" driver.execute_script(js) |
滚动到底部 | js = "window.scrollTo(0,document.body.scrollHeight);" driver.execute_script(js) |
滚动到指定位置 | target = drvier.find_element(*loc) driver.execute_script("arguments[0].scrollIntoView();",target) |