四.python+selenium元素定位之id、name、class_name

在学习元素定位前,要了解一些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()

猜你喜欢

转载自blog.csdn.net/Static_at/article/details/81017333