Skip to content

Commit 953f751

Browse files
committed
K
1 parent b65c4c3 commit 953f751

File tree

13 files changed

+670
-277
lines changed

13 files changed

+670
-277
lines changed

.idea/workspace.xml

Lines changed: 322 additions & 261 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demoQuickStart/pwd.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
111111

demoQuickStart/qq_mail_login.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#!/usr/bin/env python3
2+
# -*- coding:utf-8 -*-
3+
# Created on 2017/12/2
4+
5+
__author__ = "Jianguo Jin (jinjianguosky@hotmail.com)"
6+
7+
"""
8+
Description:
9+
QQ Mail Login
10+
"""
11+
12+
from selenium import webdriver
13+
from time import sleep
14+
15+
url = 'https://mail.qq.com'
16+
17+
options = webdriver.ChromeOptions()
18+
options.add_argument('disable-infobars')
19+
20+
driver = webdriver.Chrome(chrome_options=options)
21+
driver.maximize_window()
22+
driver.get(url)
23+
driver.implicitly_wait(20)
24+
iframe = driver.find_element_by_tag_name("iframe")
25+
driver.switch_to.frame(iframe)
26+
sleep(1)
27+
28+
JS_login_tab = 'document.getElementById("switcher_plogin").click()'
29+
driver.execute_script(JS_login_tab)
30+
sleep(3)
31+
32+
driver.find_element_by_css_selector("#u").send_keys("3124724")
33+
sleep(1)
34+
password = open('pwd.txt').read()
35+
print("password is : {}".format(password))
36+
37+
driver.find_element_by_css_selector("#p").send_keys(password)
38+
39+
JS_login_btn = 'document.getElementById("login_button").click()'
40+
41+
driver.execute_script(JS_login_btn)
42+
sleep(5)
43+
44+
if driver.title == "QQ邮箱":
45+
print("Login success")
46+
print("Done")
47+
48+
else:
49+
error = driver.find_element_by_class_name("err_m")
50+
print("Login fail.")
51+
print(error.text)
52+
53+
driver.quit()

demomore/qq_mail_login.py

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#!/usr/bin/env python3
2+
# -*- coding:utf-8 -*-
3+
# Created on 2017/12/2
4+
5+
__author__ = "Jianguo Jin (jinjianguosky@hotmail.com)"
6+
7+
"""
8+
Description:
9+
QQ Mail Login
10+
"""
11+
from selenium import webdriver
12+
from time import sleep
13+
14+
url = 'https://mail.qq.com'
15+
16+
options = webdriver.ChromeOptions()
17+
options.add_argument('disable-infobars')
18+
19+
driver = webdriver.Chrome(chrome_options=options)
20+
driver.maximize_window()
21+
driver.get(url)
22+
driver.implicitly_wait(20)
23+
iframe = driver.find_element_by_tag_name("iframe")
24+
driver.switch_to.frame(iframe)
25+
sleep(1)
26+
27+
JS_login_tab = 'document.getElementById("switcher_plogin").click()'
28+
driver.execute_script(JS_login_tab)
29+
sleep(3)
30+
31+
driver.find_element_by_css_selector("#u").send_keys("3124724")
32+
sleep(1)
33+
driver.find_element_by_css_selector("#p").send_keys("1111")
34+
35+
JS_login_btn = 'document.getElementById("login_button").click()'
36+
37+
driver.execute_script(JS_login_btn)
38+
sleep(5)
39+
40+
if driver.title == "QQ邮箱":
41+
print("Login success")
42+
print("Done")
43+
44+
else:
45+
error = driver.find_element_by_class_name("err_m")
46+
print("Login fail.")
47+
print(error.text)
48+
49+
driver.quit()

demomore/training_JS_find/2.32_js几种定位方法总结.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
以下总结了5种js定位的方法:
22
document.getElementById() 返回对拥有指定 id 的第一个对象的引用。
33

4-
document. getElementsByClassName() 返回文档中所有指定类名的元素集合,作为 NodeList 对象。
4+
document.getElementsByClassName() 返回文档中所有指定类名的元素集合,作为 NodeList 对象。
55
document.getElementsByName() 返回带有指定名称的对象集合。
66
document.getElementsByTagName() 返回带有指定标签名的对象集合。
77
document.querySelectorAll( "css selector" )
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/env python3
2+
# -*- coding:utf-8 -*-
3+
# Created on 2017/12/2
4+
5+
__author__ = "Jianguo Jin (jinjianguosky@hotmail.com)"
6+
7+
"""
8+
Description:
9+
10+
"""
11+
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#!/usr/bin/env python3
2+
# -*- coding:utf-8 -*-
3+
# Created on 2017/12/2
4+
5+
__author__ = "Jianguo Jin (jinjianguosky@hotmail.com)"
6+
7+
"""
8+
Description:
9+
Web element 处理
10+
"""
11+
from selenium import webdriver
12+
from time import sleep
13+
14+
BASE_URL = "http://test.vcoding.com/checkboxes/"
15+
option = webdriver.ChromeOptions()
16+
option.add_argument('disable-infobars')
17+
driver = webdriver.Chrome(chrome_options=option)
18+
19+
driver.maximize_window()
20+
driver.implicitly_wait(20)
21+
driver.get(BASE_URL)
22+
sleep(2)
23+
24+
# find_elements_by_tag_name
25+
checkboxes_0 = driver.find_elements_by_tag_name('input')
26+
27+
# find_elements_by_xpath - input-type
28+
checkboxes_1 = driver.find_elements_by_xpath('//input[@type="checkbox"]')
29+
30+
# find_elements_by_xpath (starts-with)
31+
checkboxes_2 = driver.find_elements_by_xpath('//input[starts-with(@id,"chk")]')
32+
33+
# find_elements_by_css_selector
34+
checkboxes_3 = driver.find_elements_by_css_selector('input[type="checkbox"]')
35+
36+
print(type(checkboxes_0))
37+
print(len(checkboxes_0))
38+
checkboxes = []
39+
40+
for chk in checkboxes_0:
41+
print(chk.text)
42+
if chk.get_attribute('type') == 'checkbox':
43+
chk.click()
44+
sleep(1)
45+
46+
for chk in checkboxes_1:
47+
print(chk.text)
48+
if chk.get_attribute('type') == 'checkbox':
49+
chk.click()
50+
sleep(1)
51+
52+
for chk in checkboxes_2:
53+
print(chk.text)
54+
if chk.get_attribute('type') == 'checkbox':
55+
chk.click()
56+
sleep(1)
57+
58+
for chk in checkboxes_3:
59+
print(chk.text)
60+
if chk.get_attribute('type') == 'checkbox':
61+
chk.click()
62+
sleep(1)
63+
64+
checkboxes_0[-1].click()
65+
66+
sleep(2)
67+
driver.quit()

sec31_synctesting/explicitWaitTest.py

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
from selenium import webdriver
1313
from selenium.webdriver.common.by import By
1414
from selenium.webdriver.support.ui import WebDriverWait
15-
from selenium.webdriver.support import expected_conditions
15+
from selenium.webdriver.support import expected_conditions as EC
16+
17+
from time import sleep
1618

1719
URL = 'https://www.tmall.com'
1820

@@ -24,23 +26,43 @@ def setUp(self):
2426
self.driver.implicitly_wait(5)
2527

2628
def test_wait(self):
27-
login_line = WebDriverWait(self.driver, 30).until(
28-
expected_conditions.visibility_of_element_located((By.LINK_TEXT, '请登录')))
29+
login_line = WebDriverWait(self.driver, 30).until(EC.visibility_of_element_located((By.LINK_TEXT, '请登录')))
2930
self.assertEqual('sn-login', login_line.get_attribute('class'))
3031

32+
3133
# login_line.click()
3234
# self.driver.implicitly_wait(20)
3335

34-
# def test_element_to_be_enalble(self):
35-
# self.driver.find_element_by_link_text('请登录').click()
36-
# free_sign_up = WebDriverWait(self.driver, 30).until(
37-
# expected_conditions.presence_of_element_located((By.XPATH, '//*[@id="J_QRCodeLogin"]/div[5]/a[2]')))
38-
# free_sign_up.click()
39-
#
40-
# agree_btn = WebDriverWait(self.driver, 20).until(
41-
# expected_conditions.element_to_be_clickable((By.LINK_TEXT, '同意协议')))
42-
# agree_btn.click()
43-
# WebDriverWait(self.driver, 20).until(expected_conditions.title_contains('天猫注册'))
36+
def test_element_to_be_enalble(self):
37+
self.driver.find_element_by_link_text('请登录').click()
38+
39+
# 注意,有关用户登录,一定注意要先 switch_to.frame(iframe)
40+
iframe = self.driver.find_element_by_tag_name("iframe")
41+
WebDriverWait(self.driver, 30).until(EC.frame_to_be_available_and_switch_to_it(iframe))
42+
43+
free_sign_up = WebDriverWait(self.driver, 30).until(
44+
# EC.presence_of_element_located((By.XPATH, '//*[@id="J_QRCodeLogin"]/div[5]/a[2]')))
45+
EC.visibility_of_element_located((By.LINK_TEXT, "免费注册")))
46+
free_sign_up.click()
47+
48+
sleep(6)
49+
50+
# js_monitor = 'document.getElementById("J_AgreementDialog").style.display = "none"'
51+
# self.driver.execute_script(js_monitor)
52+
53+
# 难点, 无法定位到同意协议窗体。
54+
# self.driver.switch_to_alert().dismiss()
55+
iframe = self.driver.find_element_by_tag_name("iframe")
56+
WebDriverWait(self.driver, 30).until(EC.frame_to_be_available_and_switch_to_it(iframe))
57+
58+
agree_btn = self.driver.find_element_by_xpath('//*[@id="J_AgreementBtn"]')
59+
# agree_btn = WebDriverWait(self.driver, 20).until(
60+
# EC.visibility_of_element_located((By.XPATH, '//*[@id="J_AgreementBtn"]')))
61+
62+
agree_btn.click()
63+
64+
WebDriverWait(self.driver, 20).until(EC.title_contains('天猫注册'))
65+
self.assertEqual("天猫注册", self.driver.title)
4466

4567
def test_custom_coditions(self):
4668
self.driver.get(URL)
@@ -54,7 +76,7 @@ def tearDown(self):
5476

5577
# 可以代替lambda 表达式, return True
5678
def check_q(self):
57-
if self.driver.find_element_by_name('q').get_attribute('title') =='请输入搜索文字':
79+
if self.driver.find_element_by_name('q').get_attribute('title') == '请输入搜索文字':
5880
return True
5981

6082
else:

sec34_module_test/other.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,7 @@
1313
if __name__ == '__main__':
1414
print("自己的功能模块测试")
1515
st.test_login()
16+
print("------")
17+
st.test_operation()
18+
print("------")
19+
st.test_logout()

sec34_module_test/script_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
driver = webdriver.Firefox(firefox_binary=ff_bin)
2020

2121
driver.implicitly_wait(20)
22-
driver.set_window_size(1400, 1000)
22+
driver.set_window_size(1920, 1080)
2323

2424

2525
def init_driver():

0 commit comments

Comments
 (0)