美文网首页
selenium执行JavaScript脚本

selenium执行JavaScript脚本

作者: 金融测试民工 | 来源:发表于2020-08-11 00:22 被阅读0次

    一、前言

    1.selenium能够执行js脚本,这使得selenium拥有更为强大的能力。既然能执行js,那么js能做的事情,selenium应该大部分都能做。

    2.直接使用js操作页面,可以解决很多click()不生效的问题

    3.页面滚动到底部、顶部

    4.处理富文本、时间控件的输入等。

    二、示例( 修改12306网站的出发时间 )

    # -*- coding:utf-8 -*-

    # @File:test_js.py

    import time

    import allure

    from selenium_test.selenium_js.base import Base

    class TestJS(Base):

        @allure.feature("打开百度,搜索selenium测试,点击搜索,滚动到底部")

        def test_js_scroll(self):

            self.driver.get("https://www.baidu.com/")

            self.driver.find_element_by_id('kw').send_keys('selenium测试')

            element = self.driver.execute_script("return document.getElementById('su')")

            element.click()

            time.sleep(2)

            self.driver.execute_script("document.documentElement.scrollTop=2000")

            time.sleep(2)

            self.driver.find_element_by_xpath('//*[@id="page"]/div/a[10]').click()

            time.sleep(5)

            for code in [" return document.title", "return JSON.stringify(performance.timing)"]:

                print(self.driver.execute_script(code))

        @allure.feature("修改12306网站的出发时间")

        def test_datetime(self):

            self.driver.get("https://www.12306.cn/index/")

            self.driver.execute_script("a=document.getElementById('train_date');a.removeAttribute('readonly');a.value='2020-08-10'")

            time.sleep(5)

            print(self.driver.execute_script('return document.getElementById("train_date").value'))

            time.sleep(3)

    相关文章

      网友评论

          本文标题:selenium执行JavaScript脚本

          本文链接:https://www.haomeiwen.com/subject/oeyjdktx.html