python UI自动化记录

1.python ui自动化:

报告模板:https://github.com/GoverSky/HTMLTestRunner_cn

http://wiki.hqygou.com:8090/pages/viewpage.action?pageId=97781973

1、便利性

2、可复用性

3、收益

4、简单化

smtp_server.login('[email protected]', 'qffmtutgoxbtbfff')

邮件html格式:https://github.com/GoverSky/HTMLTestRunner_cn

2.拖动到可见的元素去

target = self.driver.find_element_by_xpath("//*[@class='paychannel checked']/dd/div/div[6]/div/input")

self.driver.execute_script("arguments[0].scrollIntoView();", target)                     # 拖动到可见的元素去

3.浏览器下拉

self.driver.execute_script("var q=document.documentElement.scrollTop=500")   IE和火狐浏览器

driver.execute_script("var q=document.body.scrollTop=5000")     谷歌浏览器

self.driver.execute_script("document.documentElement.scrollTop = 100000")  最低

1、尝试下拉一段滚动条,让按钮能看到

       js = "window.scrollTo(100,450)"

       driver.execute_script(js)

2、不是下拉加载的页面,用方法一有点傻,尝试让滚动条定位到指定元素位置

       the_loginBtn = driver.find_element_by_css_selector("div.loginForm>input#loginBtn")

       ActionChains(driver).move_to_element(the_loginBtn).perform()

4.浏览器 console  

document.getElementById('loginBtn')

5.text定位元素

self.driver.find_element_by_xpath("//span[contains(text(),'My Wallet')]").click()

6.弹窗处理

driver.switch_to.alert

driver.switch_to.alert.accept()  # 点击弹出上面的确认按钮

.accept()           确认

.dismiss()          取消(我碰到的没有取消这个,没错只能同意)

.send_keys()     输入内容(如果有的话)

6.等待元素出现

#等待百度登录弹出框中 要出现的元素可见

ele_id = "TANGRAM__PSP_10__footerULoginBtn"

 param = (By.ID,ele_id)

 #元素可见时,再进行后续操作

 WebDriverWait(driver,10).until(EC.visibility_of_element_located(param))

7.切换窗口。

js='window.open("https://www.baidu.com");' #通过执行js,开启一个新的窗口

driver.execute_script(js)

切到第一个窗口:

windows = self.driver.window_handles

self.driver.switch_to.window(windows)

切到新的窗口:

# 获得打开的第一个窗口句柄

window_1 = driver.current_window_handle

# 获得打开的所有的窗口句柄

windows = driver.window_handles

# 切换到最新的窗口

for current_window in windows:

    if current_window != window_1:

        driver.switch_to.window(current_window)

8.页面有多个同元素

self.driver.find_elements_by_xpath('//*[@id="dialogMain"]/div/a')[2].click()

elements非element,且【】。从0123开始

9.截取取正则表达式

import re

a =https://ceshi.zaful.net/?token=O190329013624114605EWF&lang=en

a = re.findall(r'https://.*en/', a)

 #或者

index = a.find("https")

print(index)

payurl = a[index:index + 61]

print(payurl)

10.切片

txt = "Google#Runoob#Taobao#Facebook"

# 第二个参数为 1,返回两个参数列表

x = txt.split("#")

print(x)

['Google', 'Runoob', 'Taobao', 'Facebook'] 

11.random

print random.randint(12, 20)     #生成的随机数n: 12 <= n <= 20

# 随机选取0到100间的偶数:print random.randrange(0, 101, 2)

# 随机浮点数:print random.random()print random.uniform(1, 10)

# 随机字符:print random.choice('abcdefghijklmnopqrstuvwxyz!@#$%^&*()')

# 多个字符中生成指定数量的随机字符:print random.sample('zyxwvutsrqponmlkjihgfedcba',5)

# 从a-zA-Z0-9生成指定数量的随机字符:

ran_str = ''.join(random.sample(string.ascii_letters + string.digits, 8))print ran_str

# 多个字符中选取指定数量的字符组成新字符串:print ''.join(random.sample(['z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a'], 5))

# 随机选取字符串:print random.choice(['剪刀', '石头', '布'])

# 打乱排序

items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]print random.shuffle(items)

12.方法中调用多个方法

def FLname_PSE():

    print("FLname_PSE")

def FLname_TRCC():

    print("FLname_TRCC")

strs = ['FLname_PSE', 'FLname_TRCC']

for s in strs:

    globals().get(s)()

13.元素拖拽

from selenium.webdriver.common.action_chains import ActionChains

# 起点

start = driver.find_element_by_xpath("//*[contains(text(),'worldpay')]")

# 终点

end = driver.find_element_by_xpath("//*[contains(text(),'worldpay')]/../li[1]")

actions = ActionChains(driver)

actions.drag_and_drop(start, end)

# 执行

actions.perform()

sleep(0.5)

https://www.cnblogs.com/yoyoketang/p/8711367.html

M端:

键盘操作:

http://www.cnblogs.com/mengyu/p/6942584.html

from selenium.webdriver.common.keys import Keys   #引入Keys类包

input = driver.find_element_by_id('kw') #定位搜索框

input.send_keys(Keys.CONTROL, 'a') #control + a 全选

from selenium.webdriver.common.action_chainsimport ActionChains  # 引入 ActionChains 类

# # 开始位置:定位到元素的原位置

# source = self.driver.find_element_by_xpath("//*[@class='ck_insuranceTxt']")

# # 结束位置:定位到元素要移动到的目标位置

# target = self.driver.find_element_by_xpath("//*[@class='headNav_hdTxt']")

# # 执行元素的拖放操作

# ActionChains(self.driver).drag_and_drop(source, target).perform()

from selenium.webdriver.common.keysimport Keys

# self.driver.find_element_by_xpath("//*[@class='headNav_hdTxt']").send_keys(Keys.SPACE)  # 注意这里组合键的输入。


djiango:

http://www.runoob.com/django/django-first-app.html

你可能感兴趣的:(python UI自动化记录)