Selenium 与JavaScript 交互

Posted CSR-kkk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium 与JavaScript 交互相关的知识,希望对你有一定的参考价值。

Selenium 执行 js 的好处

  • 解决一些 click() 不生效的问题
  • 页面滚动到底部,顶部
  • 处理富文本,时间控件的输入

如何调用js

  • execute_script:执行js
  • return:返回 js 的返回结果
  • execute_script:arguments传参
"""返回元素"""
element = self.driver.execute_script("return document.getElementById('su')")
element.click()

"""滚动到页面指定位置"""
self.driver.execute_script("document.documentElement.scrollTop=10000")

"""获得页面的信息"""
for code in [
	# 获得页面标题, 获得页面的性能信息
    'return document.title', 'return JSON.stringify(performance.timing)'
]:
    print(self.driver.execute_script(code))

"""处理时间控件"""
self.driver.execute_script("a=document.getElementById('train_date');a.removeAttribute('readonly')")


"""arguments 传参"""
element = driver.find_element(by, locator)
# arguments[0]代表所传值element的第一个参数
driver.execute_script("arguments[0].click();", element)

以上是关于Selenium 与JavaScript 交互的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中单击带有 selenium webdriver 的 javascript 确认对话框

用python实现模拟登录,突破反爬限制,Selenium库详解(附全部源代码)

用python实现模拟登录,突破反爬限制,Selenium库详解(附全部源代码)

Selenium:是不是有任何可以与 Selenium Server/RC 集成的 JS (JavaScript) 代码覆盖工具

[将Winium(+ Selenium)与python一起使用只允许我打开该应用程序,但不会与之交互?

Selenium 预期条件,等到元素可交互?