写过的一些代码

判断回文数:  使用了哨兵原则
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


---------------------------------------------------------------------------------------------------------------

猜你喜欢

转载自blog.csdn.net/wanggaoxingh/article/details/79525446