自动化测试常用函数(操作测试对象)
上一篇我们学会了怎么用Selenium定位页面元素,接下来就是要对元素进⾏操作了。常⻅的操作有点击、提交、输⼊、清除、获取⽂本。点击元素.click()输入元素.send_keys(内容)清空元素.clear()拿标签间文字元素.text拿标签属性值如按钮文字元素.get_attribute(属性名)拿页面标题/URLdriver.title / driver.current_url点击 ——click()适用场景点击按钮、链接、复选框等比如我们百度搜索时点击“百度一下”按钮。# 找到“百度一下”按钮然后点击 driver.find_element(By.CSS_SELECTOR, #su).click()定位到元素后直接加 .click() 就可以实现点击输入 ——send_keys(内容)适用场景在输入框中输入文字比如百度搜索框输入明星名字、关键词。# 找到百度搜索框输入“迪丽热巴” driver.find_element(By.CSS_SELECTOR, #kw).send_keys(迪丽热巴)输入的内容一定要用双引号/单引号括起来不然会报错如果想输入空格、回车也可以用send_keys比如 send_keys(Keys.ENTER)需要导入Keys模块。清空输入框内容 ——clear()适用场景输入错误内容或者想换一个关键词搜索时先清空输入框再重新输入。# 1. 输入第一个关键词 driver.find_element(By.CSS_SELECTOR, #kw).send_keys(2025) # 2. 等待1秒 time.sleep(1) # 3. 清空输入框 driver.find_element(By.CSS_SELECTOR, #kw).clear() # 4. 等待1秒 time.sleep(1) # 5. 输入第二个关键词 driver.find_element(By.CSS_SELECTOR, #kw).send_keys(2026)获取文本信息 ——text适用场景判断页面元素的文字是否符合预期比如获取百度热搜的第一条文字打印出来核对。# 找到百度热搜第一条获取它的文本 text driver.find_element(By.XPATH,//*[idhotsearch-content-wrapper]/li[1]/a/span[2]).text # 打印获取到的文本 print(f百度热搜第一条{text})能不能用 .text 获取“百度一下”按钮上的文字“百度一下”答案不能 很多人以为只要是文字用.text就能获取其实不是的——.text 只能获取「标签之间的文本」比如 span热搜标题/span这种才能用.text拿到。而“百度一下”按钮是 input 标签它的文字藏在「value属性」里不是标签之间的文本所以用.text获取不到会返回空值获取属性值—— get_attribute(属性名)适用场景获取元素的属性值比如按钮的value、图片的src、链接的href等上面的问题就用这个方法解决# 找到“百度一下”按钮获取它的value属性值就是按钮上的文字 btn_text driver.find_element(By.CSS_SELECTOR, #su).get_attribute(value) print(f按钮上的文字{btn_text}) # 输出百度一下.text 拿标签间的文字get_attribute 拿标签里的属性值再也不会搞混啦获取页面信息——title current_url适用场景判断页面是否跳转正确比如搜索后获取页面标题和URL确认是不是我们想要的页面。# 获取当前页面标题就是浏览器标签上的文字 page_title driver.title print(f当前页面标题{page_title}) # 获取当前页面URL浏览器地址栏的链接 current_url driver.current_url print(f当前页面URL{current_url})完整实操from selenium import webdriver from selenium.webdriver.common.by import By import time # 1. 打开Chrome浏览器 driver webdriver.Chrome() # 2. 打开百度页面 driver.get(https://www.baidu.com) # 3. 输入关键词 driver.find_element(By.CSS_SELECTOR, #chat-textarea).send_keys(古力娜扎) time.sleep(1) # 4. 点击“百度一下” driver.find_element(By.CSS_SELECTOR, #chat-submit-button).click() time.sleep(2) # 5. 获取页面标题和URL print(页面标题, driver.title) print(当前URL, driver.current_url) # 6. 获取“百度一下”按钮文字 btn_text driver.find_element(By.CSS_SELECTOR, #chat-submit-button).get_attribute(value) print(按钮文字, btn_text) # 7. 关闭浏览器 time.sleep(3) driver.quit()