前面我们学习过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()方法清除文本。