如何在 Selenium 中使用 Python 和 JavaScript 执行器向输入文本框中输入值?
我们可以使用 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()

