当前位置: 首页 > 编程笔记 >

python+selenium select下拉选择框定位处理方法

暴才俊
2023-03-14
本文向大家介绍python+selenium select下拉选择框定位处理方法,包括了python+selenium select下拉选择框定位处理方法的使用技巧和注意事项,需要的朋友参考一下

一、前言

总结一下python+selenium select下拉选择框定位处理的两种方式,以备后续使用时查询;

二、直接定位(XPath)

使用Firebug找到需要定位到的元素,直接右键复制XPath,使用find_element_by_xpath定位;

driver = webdriver.Firefox()
driver.get("https://www.baidu.com/")
driver.find_element_by_xpath().click()

三、间接定位(Select模块)

页面HTML源码如下所示:

<select id="nr" name="NR">
<option value="10" selected="">每页显示10条</option>
<option value="20">每页显示20条</option>
<option value="50">每页显示50条</option>
</select>

python+selenium 代码如下:

# coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
import time
 
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.implicitly_wait(20)
 
mouse = driver.find_element_by_link_text("设置")
ActionChains(driver).move_to_element(mouse).perform()
driver.find_element_by_link_text("搜索设置").click()
time.sleep(2)
# 实例化select
s = Select(driver.find_element_by_id("nr"))
# 定位选项
s.select_by_value("20") # 选择value="20"的项:通过value属性
time.sleep(2) #为了明显的看出变化
s.select_by_index(0) # 选择第一项选项:通过选项的顺序选择,第一个为 0
time.sleep(2) #为了明显的看出变化
s.select_by_visible_text("每页显示50条") # 选择text="每页显示50条"的值,即在下拉时我们可以看到的文本

四、总结

Select提供了三种选择方法:

select_by_index(index) ——通过选项的顺序,第一个为 0

select_by_value(value) ——通过value属性

select_by_visible_text(text) ——通过选项可见文本

Select提供了四种方法取消选择:

deselect_by_index(index) 
deselect_by_value(value) 
deselect_by_visible_text(text) 
deselect_all()

Select提供了三个属性方法提供信息:

options ——提供所有的选项的列表,其中都是选项的WebElement元素

all_selected_options ——提供所有被选中的选项的列表,其中也均为选项的WebElement元素

first_selected_option ——提供第一个被选中的选项,也是下拉框的默认值

通过Select提供的方法和属性,我们可以对标准select下拉框进行任何操作,但是对于非select标签的伪下拉框,需要使用XPath定位;

以上这篇python+selenium select下拉选择框定位处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 我正在设计一个网站。在我的网站,我想创建这样一个菜单,其中导航栏将包含这样一个ul,哪个类将是导航导航栏-导航导航栏-右。缩小页面大小后,此时会出现下拉按钮。然后,如果用户单击按钮,在出现的下拉框中li项应该向左浮动,这意味着ul类将是nav navbar-nav navbar-左。我该怎么做呢?我试过jQuery。但是在这种情况下,在页面返回到其原始大小后,ul不会返回到其原始的nav navb

  • 本文向大家介绍MVC5下拉框绑定的方法(单选),包括了MVC5下拉框绑定的方法(单选)的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了MVC5下拉框单选绑定的具体代码,供大家参考,具体内容如下 1.Model 2.controller (1)先写一个程式绑定,可以通过数据库绑定或者直接绑定 (2)初始化,并传给视图 3.视图 select2是bootstrap的样式,js添加:$('

  • 因为我是新来的,在记录选择时面临一些问题。 场景:登录- 我想检查下拉框选择的性能,即选择列表和单击“创建”按钮所需的时间,因为手动加载花费的时间太多。 我已经用代理服务器记录了脚本,但是当我点击下拉框时,我无法在记录方式的下拉框中列出被选中的内容 在检查请求时,我能够看到一些 “” 还为下拉列表记录了。 我猜下拉框列表是一个js。 他们是否需要完成任何工作来选择列表项并单击? 你能帮帮我吗。。

  • 我真的很难从一个网站上的下拉菜单中选择一个项目。HTML的代码如下所示: 我已经尝试了我能想到的一切,并在StackOverflow上找到了!我注意到这似乎可以用来选择实际的下拉框: 但我认为这是可行的,因为代码运行时不会出现任何错误。但是,我仍然无法从下拉菜单中选择任何内容。我试过: 通过xpath/name/id/tag/value/text查找元素 选择\u mp。按值选择值('2') 选择

  • 问题内容: 我对英超联赛的数据感兴趣。因此,我尝试从此官方网站获取数据https://www.premierleague.com/stats/top/players/total_pass 我正在使用R和RSelenium包。 但是我遇到了一些问题。有一些类别的数据,例如季节,位置,俱乐部等。 因此,我认为我可以基于这些类别获取数据。但是我不知道如何在此站点中使用Rselenium在下拉框中选择特定

  • 主要内容:1. Java List 示例,2. OGNL List 实例在Struts2中,HTML下拉框可以通过<s:select>标签呈现。要自动选择一个下拉框的默认值,只是声明<s:select>值”属性标记,并设置相应的默认值。 这里创建一个Web工程:strut2autoselectdropdown,来演示在多个复选框如何设置的默认值,整个项目的结构如下图所示: 1. Java List 示例 Java列表生成选择选项的下拉框。 <s:select>标记呈现