• 记录selenium简单实现自动点击操作


    最近测试规则,网页上每条测试只能手动点测试,想写个脚本实现自动点击,网上收集资料可以用selenium实现,模拟人操作。

    import selenium
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    现收集如下材料:
    使用selenium模拟打开谷歌浏览器:

    1、要下载浏览器版本对应的ChromeDriver驱动包:下载网址
    2、打开谷歌浏览器
    # 找打刚才安装的chromedriver.exe的位置
    browser = webdriver.Chrome(executable_path =r'D:\chromedriver.exe')
    此时电脑就会新打开谷歌浏览器,并显示受到自动测试软件控制


    3、打开某个网址:
    browser.get('https://www.baidu.com/')
    ps:也可以在此浏览器中自行操作打开网址,找到想要操作的页面,此时停留的页面,就是程序里可以操作的页面。

    4、元素定位
    参考:史上最全!Selenium元素定位的30种方式

    5、常用事件
    点击:参考Selenium实现点击click()

    6、程序延迟执行
    import time
    time.sleep(360) # 延迟执行360秒
     
    7、动态更改谷歌浏览器默认下载路径
    整理的时候找不到是哪个大神写的了,当时用了他的代码下面贴出来:

    def set_download_path(driver, path):
    """
    禁止下载弹窗,设置下载路径
    """
    # path = path.rstrip(os.sep)
    driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
    params = {'cmd': 'Page.setDownloadBehavior',
    'params': {'behavior': 'allow', 'downloadPath': path}}
    driver.execute("send_command", params)
    if not os.path.exists(path):
    os.makedirs(path)
     
    --------------------------------------------------------分割------------------------------------------------------------------------------------------

     

    第一需求是在这样一个页面中,等待上一条测试完成后,自动点击下一条‘开始测试’(测试完成的及进行中的就不会在出现‘开始测试’字样)
    初级实现功能代码:
    由于短时间没找打怎么监控进度到100%的方法,通过一个简单方法:每条测试大概需要5分钟左右,就设定每隔6分钟点击一次,也基本满足需求。
    import selenium
    from selenium import webdriver
    from selenium.webdriver.common.by import By

    import time
     
    # 打开谷歌浏览器,
    browser = webdriver.Chrome(executable_path =r'D:\chromedriver.exe')
     
    # 手动找到需要操作的页面
    for j in range(5): # 需要点击5页
    f= browser.find_elements_by_link_text('开始测试') # 找到当前页所有的开始测试元素
    for i in range(len(f)): # 循环每隔6分钟点击一个
    f[i].click()
    time.sleep(360)
    browser.find_elements_by_class_name('ant-pagination-item-link')[2].click() # 这一页的开始测试都点完后,点击下一页
    time.sleep(4)
     
    改进版,发现有进度的时候会有class:ant-progress-text,text会显示进度百分之多少,测试成功后就会变成其他,所以通过判断当时是否有ant-progress-text来判断当前是否测试完毕,并可以开始下一条测试。
    for j in range(5):
    f= browser.find_elements_by_link_text('开始测试')
    for i in range(len(f)):
    f[i].click()
    time.sleep(5)
    while True:
    try:
    browser.find_element_by_class_name('ant-progress-text').text # 如果没有ant-progress-text,会报错
    time.sleep(30)
    except :
    break
    browser.find_elements_by_class_name('ant-pagination-item-link')[3].click()
    time.sleep(4)
     
    第二个需求是对于测试完毕的需要下载测试结果,点击‘下载测试结果’会下载一个csv文件,下面实现自动下载,且每个文件保存在新文件中,文件夹以测试名称命名。
    r = browser.find_elements_by_link_text('下载测试结果') # 找下载测试结果
    a = browser.find_elements_by_xpath("//tbody//tr") # 找每条测试的名称
    for i in range(9):
    file_name = a[i].text.split(' ')[2]
    path = r'C:\Users\99452\Desktop\下载结果\{}'.format(file_name)
    set_download_path(browser,path) # 用到上述第7点更改默认文件夹的函数
    time.sleep(10)
    r[i].click()
    time.sleep(20)
    ————————————————
    版权声明:本文为CSDN博主「胡桃夹子zy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/hutao_ljj/article/details/112059679

  • 相关阅读:
    [收集]Grid Animation-01
    陕西航天大学横幅动态测试
    IPC机制
    Android使用权限
    DDMS
    看懂UML类图和时序图
    Frameworks detected: Android framework is detected in the project
    CoordinatorLayout父布局的Behavior
    Android权限记录
    AndroidManifest.xml文件中属性记录
  • 原文地址:https://www.cnblogs.com/javalinux/p/14805046.html
Copyright © 2020-2023  润新知