如何使用 Python 的 Selenium 中的 Javascript 执行器获取网页的标题和 URL?

selenium web driverautomation testingsoftware testing更新于 2026/2/14 17:37:17

我们可以使用 Selenium 中的 Javascript 执行器获取网页的标题和 URL。Javascript 是一种用于脚本编写的语言,运行在客户端(浏览器上)。 Selenium 提供了与 Javascript 交互的默认方法。

语法

print(driver.execute_script('return document.title'))
print(driver.execute_script('return document.URL'))

有几种与 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 语句和已识别的 Web 元素作为参数。

语法

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

JavaScript 执行器也能够返回值。因此,execute_script() 可以返回值,例如,我们可以使用此概念获取页面标题。

语法

print driver.execute_script('return document.title')

示例

使用 Javascript 实现获取网页标题和 URL 的代码。

from selenium import webdriver
#browser 公开一个可执行文件
#通过 Selenium 测试,我们将调用该可执行文件,然后
#调用 #实际浏览器
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
# 最大化浏览器窗口
driver.maximize_window()
#get 方法启动URL
driver.get("https://www.tutorialspoint.com/index.htm")
# 刷新浏览器
driver.refresh()
# 在控制台中获取页面标题
print(driver.execute_script('return document.title'))
# 在控制台中获取页面 URL
print(driver.execute_script('return document.URL'))
# 关闭浏览器
driver.close()

相关文章