• selenium-JavaScript的处理


    JavaScript的处理

    在自动化过程中,遇到js处理的元素,需要使用js语言对元素进行操作,例如,滑动到浏览器的底部或者顶部,时间控件的处理,元素可见不可见以及富文本的处理等,都需要js语言的支持,在selenium中,对js脚本的调用方法是execute_script.下面结合实例来讲述。

    元素不可见的操作

    处理方法是用js把隐藏的显示出来,方法如下:
    js="document.getElementById('li').style.display='block';"
    driver.execute_script(js)

    浏览器滑动操作

    以百度搜索为例子,分别操作滑动到底部,滑动到顶部操作,代码如下:
    from selenium import webdriver
    import time

    driver = webdriver.Chrome()
    driver.implicitly_wait(30)
    driver.maximize_window()
    driver.get("http://www.baidu.com")
    driver.find_element_by_id("kw").send_keys("selenium")
    driver.find_element_by_id("su").click()
    time.sleep(4)
    ''' 进行滑动操作,滑动到底部'''
    downjs = "var q=document.documentElement.scrollTop=10000"
    driver.execute_script(downjs)
    ''' 点击下一页,进入到第二页'''
    driver.find_element_by_partial_link_text("下一页").click()
    '''进行滑动操作,滑动到顶部'''
    upjs = "var q=document.documentElement.scrollTop=10000"
    ''' 先执行滑动到底部操作,在滑动到顶部'''
    driver.execute_script(downjs)
    time.sleep(3)
    driver.execute_script(upjs)
    time.sleep(2)
    driver.quit()

    时间控件的处理

    时间控件在测试过程中经常遇到,但大部分时间控件都是只读属性,要实现在只读属性的时间控件输入时间,可以先取消时间控件的只读属性,取消只读属性后,在Input输入框输入value即可,操作代码如下:
    

    from selenium import webdriver
    import time

    driver= webdriver.Chrome()
    def startJs(startTime):
    '''开始时间中输入自定义的时间'''
    js = "$("input[placeholder='开始时间>当前时间']").removerAttr('readonly');"
    "$("input[placeholder='开始时间>当前时间']").attr('value',{0})".format(startTime)
    driver.execute_script(js)

    def endJs(endTime):
    '''结束时间输入自定义的时间'''
    js = "$("input[placeholder='结束时间>当前时间']").removerAttr('readonly');"
    "$("input[placeholder='结束时间>当前时间']").attr('value',{0})".format(endTime)
    driver.execute_script(js)

    startJs("2019-10-10 10:00:00")
    time.sleep(3)
    endJs("2019-10-10 10:02:00")

  • 相关阅读:
    散户必看 教您怎样在短期内从10万炒到100万
    店主学习篇 如何做服装经营能手
    苹果公司CEO乔布斯在斯坦福大学毕业典礼上的演讲
    手头20万存款的租客 买房划算还是租房省钱?
    把幸福 亲了又亲
    周经理写给公司 的一封信
    土鸡市场前景:
    查看局域网内所有IP
    中国肿瘤年报出炉 浙江每312人就有1人患癌
    中药材喂土鸡或许大家还很疑惑吧
  • 原文地址:https://www.cnblogs.com/qixc/p/11798369.html
Copyright © 2020-2023  润新知