File tree 2 files changed +80
-0
lines changed
2 files changed +80
-0
lines changed Original file line number Diff line number Diff line change @@ -53,6 +53,33 @@ bG9jaw==
53
53
5 10 100000 5
54
54
```
55
55
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
+
56
83
### Python 沙箱逃逸
57
84
```
58
85
重温2012.hack.lu的比赛题目,在这次挑战中,需要读取'./1.key'文件的内容。
Original file line number Diff line number Diff line change
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 ()
You can’t perform that action at this time.
0 commit comments