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。
- 如果网页刷新后,想继续使用变量,必须重新定位和赋值。