如何在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`这样的函数返回匹配元素的数组。因此,为了定位第一个元素,使用了索引[0]。但是,如果我们使用`getElementById`函数,则不需要使用索引,因为那里只引用一个匹配的元素。

最后,对于执行,WebDriver将把Javascript语句放入浏览器,然后执行必要的动作,例如点击所需的元素。这个Javascript不会与网页中现有的Javascript混淆。

  • 在元素级别执行Javascript。

    在这个过程中,我们将借助WebDriver方法(如`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
#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()
# inputting values in the text box with help of Javascript executor
javaScript = "document.getElementsByClassName('gsc-input')[0].value = 'TestNG' "
driver.execute_script(javaScript)
#to close the browser
driver.quit()

更新于:2020年7月29日

2K+ 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.