如何在 Selenium 中使用 Python 和 JavaScript 执行器向输入文本框中输入值?

selenium web driverautomation testingsoftware testing

我们可以使用 Selenium 中的 JavaScript 执行器向输入文本框中输入值。JavaScript 是一种用于脚本编写的语言,它在客户端(浏览器)运行。Selenium 提供了一些默认方法来操作 JavaScript。

语法

javaScript = "document.getElementsByClassName("gsc-input")[0].value = "T" ")

driver.execute_script(javaScript)

在浏览器中执行 JavaScript 的方法有多种 −

  • 在文档根级别执行 JavaScript。

    在此过程中,我们将使用定位器(类或 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 在文本框中输入值的代码实现。


from selenium import webdriver

# 浏览器暴露一个可执行文件

# 通过 Selenium 测试,我们将调用该可执行文件,然后 # 调用 # 实际的浏览器

driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")

# 最大化浏览器窗口

driver.maximize_window()

# 使用 get 方法启动 URL

driver.get("https://www.tutorialspoint.com/about/about_careers.htm")

# 刷新浏览器

driver.refresh()

# 使用 JavaScript 执行器在文本框中输入值

javaScript = "document.getElementsByClassName("gsc-input")[0].value = "TestNG"

driver.execute_script(javaScript)

#关闭浏览器
driver.quit()

相关文章