如何使用 Selenium Python 点击按钮?
我们可以使用 Python 中的 Selenium Webdriver 和 click() 方法点击按钮。首先,我们需要借助任何定位器(如 id、name、class、XPath、tagname 或 CSS 选择器)来识别要点击的按钮。然后,我们必须在其上应用 click() 方法。
常用方法
在 Python 中点击 Selenium 按钮的两种常用方法是使用诸如 Xpath 之类的定位器以及使用 JavaScript 执行器。
-
使用 X_path 定位器:用于定位网页上带有文本的按钮的属性。
-
使用 'execute_script()' 方法:此方法使用 JavaScript 来点击按钮。
使用 X_path 定位按钮
Xpath(XML 路径语言)用于定位网页中的元素。当元素没有易于访问的 ID 或类名时,我们可以使用此方法。
l = driver.find_element_by_xpath("//button[text()='Check it Now']")
此方法提供了从文档根目录到元素的完整路径。通过使用此 X_path,我们可以根据各种属性(文本、类)定位元素。
打开浏览器和 URL
我们必须创建一个 WebDriver 对象,使我们能够打开一个 web 浏览器以及网页的 URL。在下面的代码中,'get()' 函数用于在 Chrome 浏览器中打开 Selenium URL('https://www.Example.com/')。
# creating an object of chrome webdriver driver = webdriver.Chrome(executable_path = r'./chromedriver') # To open selenium URL in chrome browser driver.get('https://www.Example.com')
使用 click 方法的代码实现
在下面的示例代码中,driver = webdriver.Chrome() 函数使用 Selenium 初始化浏览器,并提供 chromedriver 可执行文件的路径。找到按钮后,click() 方法会在按钮上执行点击操作。
from selenium import webdriver # set chromodriver.exe path driver = webdriver.Chrome(executable_path="C:\chromedriver.exe") # implicit wait driver.implicitly_wait(0.5) #maximize browser driver.maximize_window() # launch URL driver.get("https://tutorialspoint.com/index.htm") #identify element l =driver.find_element_by_xpath("//button[text()='Check it Now']") # perform click l.click() print("Page title is: ") print(driver.title) # close browser driver.quit()
使用 'execute_script()' 方法
Selenium 可以借助 execute_script() 和 arguments[0].click() 方法执行 JavaScript 等命令,并且元素定位器 (X_path_) 作为参数传递给此方法。
driver.execute_script("arguments[0].click();", l);
使用 execute 方法的代码实现
在下面的示例代码中,driver.execute_script() 函数使用 JavaScript 来点击按钮,其中表达式 "arguments[0].click();" 点击传递的元素。
from selenium import webdriver # set chromodriver.exe path driver = webdriver.Chrome(executable_path="C:\chromedriver.exe") # implicit wait driver.implicitly_wait(0.5) #maximize browser driver.maximize_window() # launch URL driver.get("https://tutorialspoint.com/index.htm") # identify element l =driver.find_element_by_xpath("//button[text()='Check it Now']") # perform click with execute_script driver.execute_script("arguments[0].click();", l); print("Page title is: ") print(driver.title) # close browser driver.quit()