如何在 Selenium 中使用 Python 的 Javascript 执行器点击链接?
我们可以在 Selenium 中使用 Javascript 执行器对链接执行点击操作。Javascript 是一种用于脚本编写的语言,运行在客户端(浏览器)。Selenium 提供了使用 Javascript 的默认方法。
语法
javaScript = "document.getElementsByClassName('tp-logo')[0].click();"
driver.execute_script(javaScript)
在浏览器中执行 JavaScript 的方法有几种 −
在文档根级别执行 JavaScript。
在此过程中,我们将使用定位器(class 或 id)识别元素,然后对其执行所需的操作。然后调用 execute_script() 方法,并将 JavaScript 以字符串形式传递给该方法。
语法 −
javas = "document.getElementsByName('user-search')[0].click();"
driver.execute_script(javas)
请注意,我们使用了 getElementsByName('user-search')[0]. getElementsByName 和 getElementsById 等函数返回一个匹配元素的数组。因此,为了定位第一个元素,我们使用 index[0]。但是,如果我们使用 getElementById 函数,则无需使用索引,因为那里只引用了一个匹配元素。
最后,为了执行,Web 驱动程序会将 Javascript 语句放入浏览器中,然后执行必要的操作,例如点击所需元素。此 Javascript 不会与网页中现有的 Javascript 代码混合。
元素级 Javascript 执行。
在此过程中,我们将借助 Web 驱动程序方法(例如 find_element_by_xpath 或 find_element_by_id 等)识别元素。然后对其执行必要的操作,例如点击元素。最后,调用方法 execute_script()。此方法以 Javascript 语句和已识别的 webelement 作为参数。
语法 −
userN= driver.find_element_by_id("user-search']")
driver.execute_script("arguments[0].click();", userN)
示例
使用 Javascript 执行器实现点击链接的代码实现。
from selenium import webdriver
#浏览器暴露一个可执行文件
#通过Selenium测试,我们将调用可执行文件,然后该文件将#调用#实际浏览器
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
#最大化浏览器窗口
driver.maximize_window()
#获取方法启动URL
driver.get("https://www.tutorialspoint.com/about/about_careers.htm")
#刷新浏览器
driver.refresh()
#借助Javascript执行器识别链接
javaScript = "document.getElementsByClassName(&39;tp-logo&39;)[0].click();"
driver.execute_script(javaScript)
#关闭浏览器
driver.quit()

