如何在使用 Python 的 Selenium 中,通过 Javascript 执行器点击链接?


我们可以使用 Selenium 中的 Javascript 执行器来执行点击链接的操作。Javascript 是一种用于脚本编写的语言,并在客户端(浏览器上)运行。Selenium 提供了默认的方法来与 Javascript 交互。

语法

javaScript = "document.getElementsByClassName('tp-logo')[0].click();"
driver.execute_script(javaScript)

有几种方法可以在浏览器中执行 Javascript:

  • 在文档根级别执行 Javascript。

    在此过程中,我们将使用定位器(类或 ID)识别元素,然后对其执行所需的 action。然后调用 execute_script() 方法,并将 Javascript 作为字符串传递给它。

**语法**:

javas = "document.getElementsByName('user-search')[0].click();"
driver.execute_script(javas)

请注意,我们使用了 getElementsByName('user-search')[0]。getElementsByName 和 getElementsById 等函数返回匹配元素的数组。因此,为了定位第一个元素,使用了索引 [0]。但是,如果我们使用 getElementById 函数,则不需要使用索引,因为只引用了一个匹配元素。

最后,为了执行操作,WebDriver 会将 Javascript 语句放入浏览器,然后执行必要的 action,例如点击所需的元素。此 Javascript 不会与网页中存在的 Javascript 混合。

  • 在元素级别执行 Javascript。

    在此过程中,我们将借助 WebDriver 方法(如 find_element_by_xpath 或 find_element_by_id 等)识别元素。然后对其执行必要的 action,例如点击元素。最后,调用 execute_script() 方法。此方法将 Javascript 语句和已识别的 Web 元素作为参数。

**语法**:

userN= driver.find_element_by_id("user-search']")
driver.execute_script("arguments[0].click();", userN)

示例

使用 Javascript 执行器点击链接的代码实现。

from selenium import webdriver
#browser exposes an executable file
#Through Selenium test we will invoke the executable file which will then #invoke #actual browser
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
# to maximize the browser window
driver.maximize_window()
#get method to launch the URL
driver.get("https://tutorialspoint.com/about/about_careers.htm")
#to refresh the browser
driver.refresh()
# identifying the link with the help of Javascript executor
javaScript = "document.getElementsByClassName('tp-logo')[0].click();"
driver.execute_script(javaScript)
#to close the browser
driver.quit()

更新于: 2020-07-29

2K+ 阅读量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.