写过的一些代码
判断回文数: 使用了哨兵原则
s=input('请输入数字:')
i=0
n=len(s)
flag ='N' ##哨兵原则
while s[i] == s[n-1]: ##从第一位和倒数第一位开始比
i += 1
n -= 1
flag ='Y' ##都比成功了,标个记号,用来退出,与下面的判断。
if flag == 'Y':
break
else:
print('不是回文数')
if flag =='Y':
print('是回文数')
---------------------------------------------------------------------------------------------------
输入一个数,倒序排列:
方法一:
s= input('输入正整数:')
l=len(s)
if l>4:
print('位数超过4.')
else:
print('该正整数有%d位' % l)
s1=s[::-1] ##使用切片很好解决
print(s1)
///////////////////////////////////////////////////////////////////////
错误方法:
s= input('输入正整数:')
l=len(s)
if l>4:
print('位数超过4.')
else:
print('该正整数有%d位' % l)
s=list(s)
s1=s.reverse() ##列表这样赋值只能返回空:None
print (s1)
////////////////////////////////////////////////////////////////////
方法二:
s= input('输入正整数:')
l=len(s)
if l>4:
print('位数超过4.')
else:
print('该正整数有%d位' % l)
s=list(s)
s.reverse()
print (s)
-------------------------------------------------------------------------------
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
l = 100
s = 100 / 2
for i in range(1,10):
l =l + (2*s) ##我的难点是没有考虑到本次的结果作为下一个计算的条件怎么弄
s = s / 2
print (l)
print (s)
----------------------------------------------------------------------------------------------------------
输出时间格式:%Y-%m-%d %H:%M:%S',time.localtime(time.time()
------------------------------------------------------------------------------------------------------------------------
用来实现在截取页面中的图片并以当前时间命名:
from selenium import webdriver
from time import gmtime,strftime
browser = webdriver.Firefox()
browser.set_window_size(1200, 900)
url = "https://www.google.com.hk/search?newwindow=1&safe=strict&q=%E7%81%AB%E7%8B%90%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%8B%E8%BD%BD&sa=X&ved=0ahUKEwi4m76bm__NAhXCFJQKHcvSD1oQ1QIIXSgD&biw=2021&bih=1014&dpr=0.95"
browser.get(url)
s = str(strftime('%Y-%m-%d %H%M%S', gmtime()))
ss = 'D:\\img\\' + s + '.png'
print(ss)
browser.save_screenshot(ss)
browser.close()
-------------------------------------------------------------------------------------------------------------------------------
try except else的使用,如果出错则截图
from selenium import webdriver
from time import strftime
try:
browser = webdriver.Firefox()
browser.set_window_size(1200, 900)
url = "https://www.baidu.com"
browser.get(url)
except 'error':
s = str(strftime('%Y-%m-%d %H%M%S'))
img = 'D:\\img\\' + s + '.jpg'
print(img)
browser.save_screenshot(img)
else:
browser.close()
---------------------------------------------------------------------------------------------------------------------------------
计算实例:
from appium import webdriver
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '21'
desired_caps['deviceName'] = 'MYVDU15929022742'
desired_caps['appPackage'] = 'com.android.calculator2'
desired_caps['appActivity'] = '.Calculator'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.find_element_by_name("9").click()
driver.find_element_by_name("5").click()
driver.find_element_by_name("+").click()
driver.find_element_by_name("6").click()
driver.find_element_by_name("=").click()
driver.quit()
------------------------------------------------------------------------------------------------------------------------------------
安装酷狗,滑动6个页面,进入搜索框,搜索出来的结果长按某一坐标将歌曲标记为选中状态;apk文件必须放在桌面
from appium import webdriver
import time
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '21'
desired_caps['deviceName'] = 'MYVDU15929022742'
desired_caps['appPackage'] = 'com.kugou.android'
desired_caps['appActivity'] = 'com.kugou.android.app.splash.SplashActivity'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
time.sleep(2)
for i in range(1,7):
driver.swipe(800,400,10,600)
time.sleep(0.5)
class caozuo():
def xyz(self):
# 取消安装繁星直播
driver.find_element_by_id('com.kugou.android:id/fur').click()
# 点击进入首页
driver.tap([(500,1550)],)
time.sleep(3)
# 点击进入搜索
driver.find_element_by_id('com.kugou.android:id/etc').click()
# 睡眠的原因是有时候程序太快了,页面还没加载完就已经点击了所以定位不到,会报错
time.sleep(3)
# 点击中国新歌声
driver.tap([(170,350)],)
time.sleep(2)
# driver.tap([(500,640)],)
# 找不到长按按钮,所以用滑动代替,当前滑动到当前
driver.swipe(500,640,500,640,2000);
cz =caozuo()
cz.xyz()
---------------------------------------------------------------------------------------------
jquery实现页面下滑到底部
#coding=utf-8
from selenium import webdriver
import time
#访问好搜
driver=webdriver.Firefox()
driver.get("https://www.so.com/")
#搜索
driver.find_element_by_id("input").send_keys("selenium")
driver.find_element_by_id("search-button").click()
time.sleep(3)
#将页面滚动条拖到底部
while True:
driver.swipe(200,1581,200,1080)
js = '''
$(window).scroll(function(){
var scrollTop = $(this).scrollTop();
var scrollHeight = $(document).height();
var windowHeight = $(this).height();
if(scrollTop + windowHeight == scrollHeight){
alert("you are in the bottom");
}
});
'''
driver.execute_script(js)
print('滑动到底部,循环退出循环')
time.sleep(5)
driver.quit()
--------------------------------------------------------------------------------------------------------------
第一次写一个类,然后实例实例化该类及调用该类下的方法:
from selenium import webdriver
import unittest,time
import HTMLTestRunner
class l():
def d(self):
#使用火狐浏览器打开禅道
driver = webdriver.Firefox()
driver.get('http://zentao.avatarworks.com/index.php?m=user&f=login')
#睡眠一秒,否则html页面还没加载完成,找不到控件。。。。
time.sleep(1)
#页面中输入账号密码,点击登录
driver.find_element_by_id('account').send_keys('wangxh')
driver.find_element_by_name('password').send_keys('123456')
driver.find_element_by_id('submit').click()
#打开要重定向的页面
driver.get('http://zentao.avatarworks.com/index.php?m=testcase&f=browse&productID=1')
#设置浏览器大小,并获取页面中所有的checbox,通过循环点击所有的checkbox
driver.maximize_window() #浏览器最大化
# driver.set_window_size(2000,1200)
cb = driver.find_elements_by_name('caseIDList[]')
for checkbox in cb:
checkbox.click()
#等待3s后,将所有的打钩全部去掉
time.sleep(3)
cb2 = driver.find_elements_by_name('caseIDList[]')
for checkbox in cb2[::-1]:
checkbox.click()
L = l()
L .d()
----------------------------------------------------------------------------------------------------------------
页面有时候元素还没加载完成,代码中就调用该元素,可使用等待的方式,设置等待的最大时间,当元素在该时间段中
加载出来,直接调用该函数,而不必等到设置的等待时间到才调用函数;如果超出等待时间抛出异常NoSuchElementException,
from appium import webdriver
driver = webdriver.Firefox()
driver.implicitly_wait(10)#设置了最长等待时间为10秒
driver.get("http://www.baidu.com")
input_ = driver.find_element_by_id("kw22")
input_.send_keys('selenium')
implicitly_wait()
默认参数的单位为秒,本例中设置等待时长为 10 秒,首先这 10 秒并非一个固定的等 待时间,
它并不影响脚本的执行速度。其次,它并不真对页面上的某一元素进行等待,当脚本执行到某个
元素定位时,如果元素可定位那么继续执行,如果元素定位不到,那么它将以轮询的方式不断的判断元素 是否被定位到,
假设在第 6 秒钟定位到元素则继续执行。直接超出设置时长(10 秒)还没定位到元素则抛 出异常
--------------------------------------------------------------------------------------------------------------
# 把页面上最后1个checkbox的勾给去掉
driver.find_elements_by_css_selector('input[type=checkbox]').pop().click()
pop() 函数用于获取列表中的一个元素(默认为最后一个元素),并且返回该元素 的值。
因为前的循环已经所有复选框都勾选上了,再对这一组元素执行 pop().lick() 其实是对后一个元素取 消勾选。如果只想勾选一组元素中的某一个呢。
pop()或 pop(-1) 默认获取一组元素中的最后一个。
pop(0) 默认获取一组元素中的第一个。
pop(1) 默认获取一组元素中的第二个。
-------------------------------------------------------------------------------------------------------------
web页面对于点击按钮上传文件,通过 input 标签实现的通过上传,可以将其看作一个输入框,通过 send_keys()传入本地文件路径 从而模拟上传功能
#定位上传按钮,添加本地文件 driver.find_element_by_name("file").send_keys('D:\\upload_file.txt')
----------------------------------------------------------------------------------------------------------------
cookies,这个在app不知道有什么用,在web可修改,查看,删除cookies
cookie = driver.get_cookies()
print(cookie)
driver.add_cookies({'name':'key-aaaaaaa', 'value':'value-bbbbbb'}) #增加cookies,必须是一个字典,包含name和values
driver.delete_cookies() #删除cookies
---------------------------------------------------------------------------------------------------------------