Selenium10--查找一组元素

find_element方法

查找一个元素用find_element方法,返回一个webelement页面元素对象。

"""
	打开首页,关键字文本框反复输入,搜索后再次输入
"""
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
driver = webdriver.Firefox() # 启动浏览器
driver.get('http://localhost/upload/index.php')
kw = driver.find_element(By.ID,'keyword')
kw.send_keys('a')
sleep(3) # 等待3秒
kw.clear()
kw.send_keys('b')
# driver.refresh() # 主动刷新页面
driver.find_element(By.NAME,'imageField').click() # 点击搜索后刷新
kw = driver.find_element(By.ID,'keyword')
kw.send_keys('c')

driver.quit() # 关闭浏览器

查找一组元素用find_elements方法,返回一个由页面元素对象所组成的列表。

 """
 	打开留言板,从第二个开始,依次点击留言类型里的每一个单选按钮
 """
 from selenium import webdriver
 from time import sleep
 from selenium.webdriver.common.by import By
 driver = webdriver.Firefox() # 启动浏览器
 driver.get('http://localhost/upload/message.php')
 a1 = driver.find_elements(By.NAME,'msg_type')
 for i in range(1,len(a1)):
     a1[i].click()
     sleep(2)
 sleep(3)
 driver.quit() # 关闭浏览器
"""
	打开首页,依次点击右上角的每一个超级链接(查看购物车、选购中心、标签云、报价单)
"""
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
driver = webdriver.Firefox() # 启动浏览器
driver.get('http://localhost/upload/message.php')
list1 = driver.find_elements(By.CSS_SELECTOR,'li#topNav > a')
for i in range(1,len(list1)):
    list1[i].click()
    sleep(2)
    list1 = driver.find_elements(By.CSS_SELECTOR,'li#topNav > a')
sleep(3)
driver.quit() # 关闭浏览器

注意:

  • 定位到的元素,不论一个还是一组,都可以赋值给变量使用,但是一旦网页刷新,这个变量就会失效,无法使用。
  • 使用失效的变量,抛出异常StaleElementReferenceException。
  • 如果网页刷新后,想继续使用变量,必须重新定位和赋值。
posted @ 2022-12-11 21:57  暄总-tester  阅读(104)  评论(0)    收藏  举报