Selenium之execute_script()方法执行js脚本

目录

场景应用和使用

页面滚动

获取返回值

返回JavaScript定位的元素对象

修改元素属性

弹出提示框


场景应用和使用

在自动化测试中,部分场景无法使用自动化Selenium原生方法来进行测试:

  •         滚动到某个元素(位置)
  •         修改时间控件(修改元素属性)
  •         其它场景

因此我们需要使用js脚本来执行,js脚本有两种执行场景:

  •         在页面上直接执行js
  •         定位到指定元素再执行js 

WebDriver有两个方法来执行JavaScript,分别是:

  1. execute_script(同步执行)
  2. execute_async_script(异步执行)

下面将介绍使用execute_script()方法执行js的实例

页面滚动

1.滚动页面操作

        页面滚动我们可以滚到到指定位置,也可以滚到到页面底部

页面滚动使用

window.scrollTo(x,y)

来进行滚动,其中x表示横向滚动的位置,y表示纵向滚动的位置

1.滚动到指定位置

假设我们想滚动到距离顶部1000的位置,我们可以设置x=0,y=1000,如下:

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By


class casetest(object):
    def __init__(self):
        self.driver = webdriver.Edge()
        self.driver.get('http://wwww.baidu.com')


    def test_execute(self):
        # 滚动条滚动
        self.driver.find_element(By.ID,('kw')).send_keys('selenium')
        self.driver.find_element(By.ID,('su')).click()
        sleep(2)
        #滚动到指定位置
        js= 'window.scrollTo(0,1000)'
        #使用execute_script执行js脚本
        self.driver.execute_script(js)
        sleep(2)


if __name__ == '__main__':
    case = casetest()

    case.test_execute()

    case.driver.quit()

运行后,我们发现位置已经在距离顶部1000的位置了

或者我们可以使用Document来实现

js脚本如下:

js = 'document.documentElement.scrollTop=1000'
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    次元工程师!

    你的鼓励将是我创作的最大动力

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值