selenium 中 普通-寻找元素

一.

根据class 属性定位
from selenium import webdriver

# 创建 WebDriver 实例对象,指明使用chrome浏览器驱动

wd = webdriver.Chrome(r'd:\webdrivers\chromedriver.exe')

# WebDriver 实例对象的get方法 可以让浏览器打开指定网址

wd.get('http://cdn1.python3.vip/files/selenium/sample1.html')

# 根据 class name 选择元素,返回的是 一个列表 # 里面 都是class 属性值为 animal的元素对应的 WebElement对象

elements = wd.find_elements_by_class_name('animal')

# 取出列表中的每个 WebElement对象,打印出其text属性的值 # text属性就是该 WebElement对象对应的元素在网页中的文本内容

for element in elements:

        print(element.text)

ps:

使用 find_elements 选择的是符合条件的 所有 元素, 如果没有符合条件的元素, 返回空列表

.text 可以打印文本

根据id定位

# 根据id选择元素,返回的就是该元素对应的WebElement对象

element = wd.find_element_by_id('kw')

# 通过该 WebElement对象,就可以对页面元素进行操作了 # 比如输入字符串到 这个 输入框里

element.send_keys('关键词\n')

ps:

1, /n 表示回车

2, 如果class属性有空格,如:<span class="chinese student">张三</span>;只能选择其中一个,chinese 或者 student. 

        element = wd.find_elements_by_class_name('chinese')或者element =         wd.find_elements_by_class_name('student')

        错误: element = wd.find_elements_by_class_name('chinese student')

根据tag名选择元素

# 根据 tag name 选择元素,返回的是 一个列表

# 里面 都是 tag 名为 div 的元素对应的 WebElement对象

elements = wd.find_elements_by_tag_name('div')

# 取出列表中的每个 WebElement对象,打印出其text属性的值 # text属性就是该 WebElement对象对应的元素在网页中的文本内容

for element in elements:

        print(element.text)

其他升级:

1,

element = wd.find_element_by_id('container')

#id内部的spans

spans = element.find_elements_by_tag_name('span')

for span in spans:

        print(span.text)

2,

# 通过WebElement对象的 get_attribute 方法来获取元素的属性值

element = wd.find_element_by_id('input_name')

print(element.get_attribute('class'))

3,

获取整个元素对应的HTML文本内容,可以使用 

element.get_attribute('outerHTML')

只是想获取某个元素 内部的HTML文本内容,可以使用 

element.get_attribute('innerHTML')

4,

对于input输入框的元素,要获取里面的输入文本,用text属性是不行的,这时可以使用 

element.get_attribute('value')

element = wd.find_element_by_id("input1")

print(element.get_attribute('value')) # 获取输入框中的文本

5,

通过WebElement对象的 text 属性,可以获取元素 展示在界面上的 文本内容。

但是,有时候,元素的文本内容没有展示在界面上,或者没有完全完全展示在界面上。 这时,用WebElement对象的text属性,获取文本内容,就会有问题。

出现这种情况,可以尝试使用 

element.get_attribute('innerText')

或者

 element.get_attribute('textContent')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值