使用 selenium 直接在当前页面中进行js交互
使用selenium 执行 Js 脚本
要使用 js 首先要知道 js 怎么用,现在举个简单得例子,就用12306举例子, 它的首页日期选择框是只能手动去选择对应得时间,因为他是 readonly 属性,要改为自
动选择得话,就需要通过 js 去修改。在控制台中我们可以简单得进行操作,如图:
使用selenium的话,思路是一样的,先将readonly属性通过js去掉,然后执行js将它的时间日期改掉,代码如下
# Base 为上一章节的base.py默认继承下来的东西
from base import Base
import pytest
import time
class TestJs(Base):
def test_js(self):
url = ‘https://www.12306.cn/index/‘
self.driver.get(url)
date_js = ‘document.getElementById("train_date").removeAttribute("readonly")‘
self.driver.execute_script(date_js)
time.sleep(2)
date_js2 = ‘document.getElementById("train_date").value="2024-06-30"‘
self.driver.execute_script(date_js2)
# ss = self.driver.find_element_by_xpath(‘//*[@id="train_date"]‘).text
# print(f‘更改之后当前的日期为:{ss}‘)
if __name__ == ‘__main__‘:
pytest.main(["-vs", "test_chromjs.py"])