前面我們學習過8種元素的定位,那么元素定位的目的肯定是需要對元素進行一系列的操作。
1、元素的點擊:click()
當定位到元素后,會返回該元素的WebElement對象,該對象調用click()方法即可實現點擊操作。
示例:
driver = webdriver.Firefox() # 打開百度 driver.get("https://www.baidu.com") # 定位百度首頁的新聞按鈕 ele = driver.find_element(By.CSS_SELECTOR, "a.mnav[href='http://news.baidu.com']") # 點擊新聞按鈕 ele.click()
示例中,打開百度首頁,定位首頁'新聞'按鈕並執行點擊操作。最后將打開新聞頁面
所以元素的點擊操作非常簡單,只需定位到元素后調用click()方法即可。
問題:若元素是不可點擊的該怎么辦?或元素不可見時也可以調用click()進行元素點擊操作嗎?
2、元素的文本輸入:send_keys(文本內容)
有時候,我們定位的元素是文本輸入框,需要對其進行文本的輸入,那么只需要用該元素調用send_keys()方法即可。
示例:
from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Firefox() # 打開百度 driver.get("https://www.baidu.com") # 定位百度首頁的輸入框 ele = driver.find_element(By.XPATH, "//input[@id='kw']") # 輸入文本'python' ele.send_keys('python')
示例中,打開百度首頁,定位搜索框,輸入文本’python‘。
3、清除輸入框中內容:clear()
有時候,由於產品的設計,輸入框中可能會有默認的提示文字,如果我們直接在輸入框中輸入內容,則會在默認文字后增加,
從而導致文本內容與期望不符合。那么可用clear()方法先清除文本框中的內容,然后再輸入我們想要的內容。
示例:
from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Firefox() # 打開百度 driver.get("https://www.baidu.com") # 定位百度首頁的輸入框 ele = driver.find_element(By.XPATH, "//input[@id='kw']") # 輸入文本'python' ele.send_keys('python') # 清除文本 ele.clear()
示例中,打開百度首頁,定位搜索輸入框並輸入文本'python',然后調用clear()方法清除文本。