5 元素操作

当我们看到某个按钮的时候,我们自己可以看懂上面的字是注册还是登录,但是机器无法看懂这个时候就涉及到元素的操作了,我们可以通过对元素进行多种操作,其中最为重要的一个就是获取某个按钮上的文字,这样我们就能在我们的测试代码中验证这个按钮的功能了

前提:获取到元素之后再对元素进行操作
1.点击和输入
  • 点击操作

      el = driver.find_element_by_xxxx()
      el.click()
    
  • 清空&输入操作

      el = driver.find_element_by_xxxx()
      el.clear()                            # 清空操作,只能清空能够输入文本的元素,比如说input,text
      el.send_keys(data)                    # 输入操作,同上,用于向元素输入内容
    
2.提交操作
  • 提交
      el = driver.find_element_by_xxxx()
      el.submit()                            # 一般可以用在登录的场景,和click的操作一致,但是应用范围不如click广
    
3.获取元素信息的操作
  • 获取文本内容

      el.text
    
  • 获取标签属性

      el.get_attribute(属性名)
    
  • 获取元素尺寸

      el.size
    
  • 获取是否可见

      el.is_displayed()
    
练习案例1
from selenium import webdriver
import time

url = 'https://www.so.com/'

driver = webdriver.Firefox()
driver.get(url)

# 定位到输入框,输入,擦除,在输入
el = driver.find_element_by_id('input')
el.send_keys('python')
time.sleep(3)
el.clear()
time.sleep(3)
el.send_keys('itcast')

el_sub = driver.find_element_by_id('search-button')
# el_sub.click()
el_sub.submit()

time.sleep(5)
driver.quit()
练习案例2
from selenium import webdriver

driver = webdriver.Firefox()

url = 'https://cn.bing.com/'
driver.get(url)

# 定位到输入框
el = driver.find_element_by_tag_name('input')
el.send_keys('美国')

# 定位到搜搜按钮
el_sub = driver.find_element_by_id('sb_form_go')
el.submit()

# 定位到所有搜索结果元素
results = driver.find_elements_by_css_selector('.b_algo>h2>a')
print(len(results))

for i in results:
    # 打印相关信息
    print(i.text,i.get_attribute('href'))
    print(i.size,i.is_displayed())

driver.close()