Webdriver(Selenium)之最佳实践
一、测试用例的组成
3A法则:
Arrangement——数据准备
Action——步骤
Assert——断言
二、表单元素定位最佳实践
name优先
id其次
css selector
class + index
xpath或其他
三、富文本赋值
应用js方法:
首先访问iframe
再访问iframe中的contentWindow
再访问body
使用innerText属性进行赋值(innterHtml)
1 def set_content(self, content):
2 js = "document.getElementById('content_ifr').contentWindow.document.body.innerHTML = '%s'" %(content)
3 self.dr.execute_script(js)
四、封装方法——更容易阅读
1 # -*- coding=utf-8 -*-
2 from selenium import webdriver
3 import unittest
4
5 class Test(unittest.TestCase):
6 def setUp(self):
7 dr = webdriver.Chrome()
8 dr.get("http://www.baidu.com")
9
10
11 def by_id(self, the_id):
12 return self.dr.find_element_by_id(the_id)
13
14 def by_css(self, css):
15 return self.dr.find_element_by_css_selector(css)
16
17 def by_name(self, name):
18 return self.dr.find_element_by_name(name)
19
20 def by_js(self, js):
21 return self.dr.execute_script(js)
22
23 def tearDown(self): #每个用例执行之后
24 self.dr.quit()
五、js里的jquery事件
js = "document.querySelectorAll('#submit')[0].click()" driver.execute_script(js)
点击id=submit