|
同步请求运行js:
driver.execute_script(script, *args)
- script:要运行的js语句
- *args:运行js语句时使用的一些参数
异步请求运行js:
driver.execute_async_script(script, *args)
- script:要运行的js语句
- *args:运行js语句时使用的一些参数
同步请求和异步请求的区别:
from selenium import webdriver
class TestExample:
def test_example1(self):
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/") #打开百度
js = 'document.getElementById("su").value' # None
js = 'return document.getElementById("su").value' # 想拿到javaScript执行的返回值,需要在js脚本前加上return 百度一下
print(driver.execute_script(js))
driver.quit()
通过selenium所定位的元素对象,来传递到js语句中,作为一个js中的一个元素对象来进行操作。
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get("http://www.runoob.com/js/js-tutorial.html")
# 高亮显示所定位的元素
light_element = driver.find_element_by_id("s")
js_sentence_light = "arguments[0].setAttribute('style', arguments[1]);"
js_sentence_args = "color: yellow; border: 5px solid yellow;"
driver.execute_script(js_sentence_light, light_element, js_sentence_args)
sleep(3)
# 更改页面输入框中的默认文字
js_sentence_style = "document.getElementById('s').placeholder='我改变了搜索输入框默认文字';"
driver.execute_script(js_sentence_style)
sleep(3)
# 改变滚动条位置
js_sentence_position = "document.documentElement.scrollTop=999"
driver.execute_script(js_sentence_position)
sleep(3)
dayehui
来源:https://www.cnblogs.com/zrh-960906/p/14787945.html |