介绍一下,这是处理页面元素的基本方法,@selenium

  • 发送文字    element.send_keys(keys_to_send)
  • 单击      element.click()
  • 提交表单   element.submit()

这两个方法,只要我们导入了webdriver的包,就可以使用。

以火狐首页为例,先来看下火狐首页的基本情况:

selenium页面元素操作(简易版)-LMLPHP

<!-- 1 -->
<input id="search-key" class="engine-key" maxlength="100" autocomplete="off" type="text"/>
<!-- 2 -->
<input id="search-submit" class="btn-engine" value="" type="submit"/>

发送文字

driver.find_element_by_id("search_key").send_keys("selemnium")

多说一句,如果发送的是汉字,send_keys的参数需要使用u"待发送内容”的形式,u指的是utf-8编码,这样做是为了避免浏览器的编码和编译器的编码不同而陈尚的错误。

driver.find_element_by_id("search_key").send_keys(u"待发送")

左键点击“搜索”

driver.find_element_by_id("search-submit").click()

提交表单submit,一般用于模拟回车键,在表单输入完成之后,可以选择点击提交按键,也可以选择回车提交

例:在火狐首页搜索“追光者”

driver.find_element_by_id("search-key").send_keys(u"追光者")
driver.find_element_by_id("search-submit").submit()

附:网易邮箱登录demo

Login E-mail

#导入驱动的包和控制时间的包
from selenium import webdriver
import time #设置要打开的网页链接
url="https://www.baidu.com" #初始化驱动
driver = webdriver.Firefox() #打开百度
driver.get(url) #等待页面加载完成
time.sleep(3) #搜索163邮箱
driver.find_element_by_id("kw").send_keys("163邮箱登录")
time.sleep(3)
driver.find_element_by_id("su").click() #定位账号密码,账号密码自行修改
driver.find_element_by_class_name("op_email3_username").send_keys(" XXX")
driver.find_element_by_class_name("op_email3_password").send_keys("XXX")
#定位登录
driver.find_element_by_xpath(".//*[@id='1']/div[1]/div/form/table/tbody/tr[3]/td[2]/a[1]").click()
time.sleep(3)

05-02 01:12