在学习元素定位前,要了解一些HTML的基础知识,知道HTML的构成是由很多的标签构成的,而这些标签下会存在很多的元素,有些元素是无功能含义的,这些元素常常是在我们在项目启动后,与开发商量,协助后期做自动化而写上去的,主要是为了在相同的标签里做区分,让我们能准确的定位到想要的元素,从而对元素进行操作。
点击HTML了解简单的基础知识。
selenium中支持的元素定位方法有8种:
1.id 2. name 3.class_name 4. link_text 5. partial_link_text 6. tag_name 7. xpath 8. css
运用格式: 对象名.find_element_by_id(元素定位方式8种)
通过元素定位方法写一个脚本实现通过模拟输入【slenium教程】在百度输入框后,点击【百度一下】。
首先要先找到元素,再通过元素去进行定位操作
如何查看浏览器中的元素?
通过谷歌浏览器打开百度首页来举个例子:
先定位到输入框的元素:
再定位到百度一下按钮的位置:
selenium元素定位总体:
1.输入框是input标签,id="kw" name="wd" class_name="s_ipt"
2.百度一下的标签也是input,type="submit" id="su" class_name="bg s_btn"(注:class_name该元素的属性值有空格,因此无法使用class_name来直接定位)
以下是示例脚本:
#coding:utf-8
from selenium import webdriver #调用selenium中的webdriver包
from time import sleep #导入时间包
bro=webdriver.Firefox() #构建网页窗口对象
bro.maximize_window() #最大化窗口
bro.get("https://www.baidu.com/") #打开指定网页,在get括号后面加入url
sleep(2) #使用时间包,休眠2s
bro.find_element_by_id("kw").send_keys("selenium") #通过id元素定位,其中send_keys()为模拟输入
sleep(1)
bro.find_element_by_name("wd").send_keys(u"教") #通过name元素定位,其中当输入为中文时,前面需要加u
sleep(1)
bro.find_element_by_class_name("s_ipt").send_keys(u"程")#通过class_name定位
sleep(2)
bro.find_element_by_id("su").click() #通过id定位百度一下按钮,click()为点击操作
# bro.find_element_by_id("kw").submit() #其中也可使用submit进行提交操作,注意提交的元素是输入框的元素
bro.quit()#退出浏览器
总结:
1.元素查看定位方法,在浏览器按F12查找对应元素。
2.模拟输入格式:网页对象.元素对象.send_keys(u“需要输入的值”) 注意模拟输入为中文时需在前加u
3.点击操作格式:网页对象.元素对象.click() 面向对象时需要在方法后使用()小括号
4.当在form标签中,input标签type为submit时,可以使用输入框提交格式:网页对象.元素对象.submit()