Skip to content

Commit cf2c489

Browse files
committed
selenium auto test
1 parent 44f30e2 commit cf2c489

File tree

2 files changed

+80
-0
lines changed

2 files changed

+80
-0
lines changed

README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,33 @@ bG9jaw==
5353
5 10 100000 5
5454
```
5555

56+
### selenium.py 自动化测试demo
57+
```
58+
坑1:
59+
执行 python selenium.py 始终无法唤醒chrome。
60+
最终发现chromedriver很早之前安装的,没有进行:brew upgrade chromedriver,导致执行脚本时报错
61+
upgrade chromedriver 之后解决问题,官方文档说明了selenium支持好几个Browser driver。
62+
演示时用的是Chrome,python的unittest模块,文档上说也可以用pytest
63+
64+
大致支持这几种DOM查找,不用语言的接口略微的小区别
65+
driver.findElement(By.id(<element ID>))
66+
driver.findElement(By.name(<element name>))
67+
driver.findElement(By.className(<element class>))
68+
driver.findElement(By.tagName(<htmltagname>))
69+
driver.findElement(By.linkText(<linktext>))
70+
driver.findElement(By.partialLinkText(<linktext>))
71+
driver.findElement(By.cssSelector(<css selector>))
72+
driver.findElement(By.xpath(<xpath>))
73+
74+
支持Using Selenium with remote WebDriver
75+
支持远程WebDriver,默认监听4444端口
76+
启动:brew services start selenium-server-standalone
77+
停止:brew services stop selenium-server-standalone
78+
访问http://127.0.0.1:4444 点击console,
79+
新建正在测试所使用的webdriver,对于正在运行driver的测试程序,可以截图看当前测试程序的运行位置
80+
```
81+
82+
5683
### Python 沙箱逃逸
5784
```
5885
重温2012.hack.lu的比赛题目,在这次挑战中,需要读取'./1.key'文件的内容。

selenium.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# -*- coding: utf-8 -*-
2+
# @Author: lock
3+
# @Date: 2017-04-04 01:40:22
4+
# @Last Modified by: lock
5+
# @Last Modified time: 2017-04-04 23:38:09
6+
import unittest
7+
from selenium import webdriver
8+
from selenium.webdriver.common.keys import Keys
9+
import time
10+
11+
class BaiduSearch(unittest.TestCase):
12+
13+
def setUp(self):
14+
self.driver = webdriver.Chrome()
15+
16+
17+
def test_lock(self):
18+
driver = self.driver
19+
driver.get("http://www.baidu.com")
20+
self.assertIn(u"百度一下", driver.title)
21+
elem = driver.find_element_by_id("kw")
22+
elem.send_keys("lock")
23+
elem.send_keys(Keys.RETURN)
24+
i = 0
25+
while 1:
26+
if i>=2:
27+
break
28+
time.sleep(1)
29+
i+=1
30+
print "not test %s , wait %s second continue ..." % ('lock',i,)
31+
32+
def test_search(self):
33+
driver = self.driver
34+
driver.get("http://www.baidu.com")
35+
self.assertIn(u"百度一下", driver.title)
36+
elem = driver.find_element_by_id("kw")
37+
elem.send_keys("php")
38+
elem.send_keys(Keys.RETURN)
39+
i = 0
40+
while 1:
41+
if i>=2:
42+
break
43+
time.sleep(1)
44+
i+=1
45+
print "not test %s , wait %s second continue ..." % ('php',i,)
46+
assert "No results found." not in driver.page_source
47+
48+
49+
def tearDown(self):
50+
self.driver.close()
51+
52+
if __name__ == "__main__":
53+
unittest.main()

0 commit comments

Comments
 (0)