大佬教程收集整理的这篇文章主要介绍了『心善渊』Selenium3.0基础 — 13、Selenium操作下拉菜单,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
页面中的<SELEct></SELEct>
标签,就代表该元素是一个下拉菜单。
可以使用SELEct
类中提供的方法来操作页面中的下拉菜单。
(1)操作步骤:
# 1.导入包SELEct类
from SELEnium.webdriver.support.SELEct import SELEct
# 2.定位下拉菜单元素
# 3.把定位的下拉菜单元素存储到SELEct类中
SELEct = SELEct(下拉菜单元素)
# 4.1 通过value属性来选择,option标签的一个属性值
SELEct.SELEcT_By_value('属性值')
# 4.2 通过选项索引(index)值选择 索引从0开始
SELEcT_By_index(索引值)
# 4.3 通过选项名称选择
SELEcT_By_visible_text(选择名称)
(2)示例:
页面代码片段
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
</head>
<body>
<SELEct name="SELEcta" id="SELEctA">
<option value="bj">A北京</option>
<option value="sh">A上海</option>
<option value="gz">A广州</option>
<option value="cq">A重庆</option>
</SELEct>
</body>
</html>
脚本代码:
"""
1.学习目标:
掌握SELEnium中SELEct类使用
2.语法(操作步骤)
2.1导入SELEct类
2.2 定位下拉框的SELEct标签
2.3 使用SELEct类提供的方法选择选项
2.3.1 通过选项的value值选择
SELEcT_By_value("value属性值")
2.3.2 通过选项索引值选择 索引从0开始
SELEcT_By_index(索引值)
2.3.3 通过选项名称选择
SELEcT_By_visible_text(选择名称)
3.需求
在页面中,使用SELEct类操作下拉框
"""
# 1.导入SELEnium
from SELEnium import webdriver
from time import sleep
import os
from SELEnium.webdriver.support.SELEct import SELEct
# 2.打开浏览器
driver = webdriver.Chrome()
# 3.打开页面
url = "file:///" + os.path.abspath("./3.html")
driver.get(url)
sleep(2)
# 4.使用SELEct类操作下拉框
# 4.1 定位下拉框标签
SELEctA = driver.find_elemenT_By_id("SELEctA")
# 4.2 通过SELEct类选择选项
# 创建下拉框对象
# SELEct(定位下拉框的元素--SELEct标签元素)
SELEct = SELEct(SELEctA)
# 通过value值选择选项(选择上海)
SELEct.SELEcT_By_value("sh")
sleep(2)
# 通过index值选择选项,索引从0开始(选择广州)
SELEct.SELEcT_By_index(2)
sleep(2)
# 通过text值选择选项(选择北京)
SELEct.SELEcT_By_visible_text("A北京")
sleep(2)
# 5.关闭浏览器
driver.quit()
调用如下方法,选择下拉框中的选项
操作 | 说明 |
---|---|
all_SELEcted_options |
查看所有已选 |
first_SELEcted_option |
查看第一个已选 |
is_multiple |
查看是否是多选 |
options |
查看选项元素列表 |
取消选择:
操作 | 说明 |
---|---|
deSELEcT_By_value() |
通过option 标签的value 属性来选择 |
deSELEcT_By_index() |
通过选项索引(index )值选择 索引从0开始 |
deSELEcT_By_visible_text() |
通过选项名称选择 |
示例:
同上边示例,具体看获得的SELEct
下拉菜单元素对象的操作。
# 1.导入SELEnium
from SELEnium import webdriver
from time import sleep
import os
from SELEnium.webdriver.support.SELEct import SELEct
# 2.打开浏览器
driver = webdriver.Chrome()
# 3.打开页面
url = "file:///" + os.path.abspath("./3.html")
driver.get(url)
sleep(2)
# 4.使用SELEct类操作下拉框
# 4.1 定位下拉框标签
SELEctA = driver.find_elemenT_By_id("SELEctA")
# 4.2 通过SELEct类选择选项
# 创建下拉框对象
# SELEct(定位下拉框的元素--SELEct标签元素)
SELEct = SELEct(SELEctA)
"""
我们就以first_SELEcted_option举个例子,
其他的操作同理,自己尝试。
"""
# 5.下拉框元素对象的操作
# 下拉框对象直接调用操作
# 5.1 打印下拉框第一个已选选项
print("打印第一个已选选项", SELEct.first_SELEcted_option)
# 5.2 查看第一个已选选项对象的方法
print(dir(SELEct.first_SELEcted_option))
# 5.3 通过上一步,我们查看选项对象有一个text方法
# 是获取选项的名称
print(SELEct.first_SELEcted_option.text) # A北京
# 6.关闭浏览器
driver.quit()
先定位下拉菜单,再定位菜单中的具体元素,对下拉菜单进行二次定位。
类似于XPath
,css_SELEctor
层级定位。
在实际测试过程中,一个页面可能有多个属性基本相同的元素,如果要定位到其中的一个,这时候可以使用层级定位或者元素的二次定位。
即:先定位到父元素,然后再通过父元素定位子孙元素。
页面代码片段:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
</head>
<body>
<SELEct name="SELEcta" id="SELEctA">
<option value="bj">A北京</option>
<option value="sh">A上海</option>
<option value="gz">A广州</option>
<option value="cq">A重庆</option>
</SELEct>
</body>
</html>
脚本代码:
"""
1.学习目标:
掌握二次定位的方法
2.语法(操作步骤)
2.1 定位父标签
2.2 通过父标签定位子标签
3.需求
在页面中,使用二次定位方法,操作下拉菜单
4.总结
二次定位:通过元素找另外元素。
和xpath,css_SELEctor层级定位类似。
除了元素的基本操作外,元素也可以定位其他元素。
元素.click()/clear()/send_keys()/find_element_xxx
注意:二次定位不止使用在下拉菜单操作中。
"""
# 1.导入SELEnium
from SELEnium import webdriver
from time import sleep
import os
# 2.打开浏览器
driver = webdriver.Chrome()
# 3.打开页面
url = "file:///" + os.path.abspath("./3.html")
driver.get(url)
sleep(2)
# 4.二次定位操作下拉菜单
# 4.1 先定位父级元素--SELEct标签元素
SELEct = driver.find_elemenT_By_name("SELEcta")
# 4.2 通过SELEct标签元素定位option子标签
option = SELEct.find_elemenT_By_css_SELEctor("option[value='gz']")
# 4.3 点击选择的选项
option.click()
sleep(2)
# 5.关闭浏览器
driver.quit()
以上是大佬教程为你收集整理的『心善渊』Selenium3.0基础 — 13、Selenium操作下拉菜单全部内容,希望文章能够帮你解决『心善渊』Selenium3.0基础 — 13、Selenium操作下拉菜单所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。