Selenium WebDrivers 学习记录 - 执行 JS

应用场景

通过 JS 代码修改 HTML 标签属性,以便 WebDrivers 操作网页

方法说明

'''
同步执行JS代码
script:被执行的JS代码
args:js代码中的任意参数
'''
execute_script(script, args)

'''
异步执行JS代码
script:被执行的JS代码
args:js代码中的任意参数
'''
execute_async_script(script, args)

示例

'''
改变标签属性
<input type="text" class="input" value="2018-07-21" id="train_date" readonly>
当input标签存在readonly时,send_keys输入无效
'''
# #创建FChrome WebDriver的实例
chromedriver_path=r"D:\Python\chromedriver.exe"
driver = webdriver.Chrome(chromedriver_path,options=option)
#最大化窗口
driver.maximize_window()
#打开12306
driver.get("https://www.12306.cn/index/")
#通过js先去掉input中的readonly属性
js="document.getElementById('train_date').removeAttribute('readonly')"
#执行js方法
driver.execute_script(js)
date=driver.find_element_by_id('train_date')
date.clear()
date.send_keys("2019-08-10")