selenium中通过js更改界面属性并传值

前言

在web自动化测试时,有一些界面的选择框,并不好去定位,或者限制比较多。在这种场景下,可以通过js操作,更改界面属性等,达到输入的目的。

demo

比如12306界面,选择城市,要定位输入框中的城市,直接使用元素定位可能还比较困难:
在这里插入图片描述
首先观察界面上的html代码,当我们选择上海城市时,输入框上面的input元素的value值会发生变化:
在这里插入图片描述
那么我们就可以直接通过js更改这两个元素的value值,来达到输入城市的目的:

from selenium import webdriver

chr_driver = webdriver.Chrome()
chr_driver.get('https://www.12306.cn/index/')
# 构造js语句
js_pha = """
a = document.getElementById("fromStationText")
a.value = "上海"
b = document.getElementById("fromStation")
b.value = "SHH"
"""
# 执行js语句
chr_driver.execute_script(js_pha)

在这里插入图片描述
还有一些场景,比如日期框,也是定位比较难,而且可能有一些元素也无法选择,日期框的属性也被设置为readOnly。也可以通过上面的方式进行传值:

from selenium import webdriver

chr_driver = webdriver.Chrome()
chr_driver.get('url')

# 构造js语句,将readOnly属性更改为false,再给日期输入框赋值
js_pha = """
var a = document.getElementById("xxx");
a.readOnly = false;
a.Value = "2021-10-09"
"""
# 执行js语句
chr_driver.execute_script(js_pha)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值