selenium中的下拉列表操作

下拉列表操作中分为两种:select、非select

1、非select的下拉框操作

非select下拉列表操作与网页元素操作一致,找到元素,定位元素,设置等待,点击元素等等

接下来操作百度的设置按钮,设置属于一个下拉框

举个栗子:

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

# 创建一个Chrome对象
driver = webdriver.Chrome()
# 访问百度
driver.get(‘http://baidu.com‘)
# 非select下拉框操作
# 找到百度首页的设置按钮
driver.find_element_by_xpath(‘//div[@id="u1"]//a[@class="pf"]‘).click()
# 等待下拉框的出现
loc = (By.XPATH, ‘//a[text()="高级搜索"]‘)
WebDriverWait(driver, 10).until(EC.visibility_of_element_located(loc))
driver.find_element_by_xpath(‘//a[text()="高级搜索"]‘).click()

# 退出浏览器
driver.quit()

 2、select下拉框操作:

接下来演示select下拉框操作;继续使用百度设置-高级搜索页面来演示,继续接上边代码继续写

selenium中有一个select类,用来操作select下拉列表

举个栗子:操作下图标红的下拉框

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
import time

# 创建一个Chrome对象
driver = webdriver.Chrome()
# 访问百度
driver.get(‘http://baidu.com‘)
# 非select下拉框操作
# 找到百度首页的设置按钮
driver.find_element_by_xpath(‘//div[@id="u1"]//a[@class="pf"]‘).click()
# 等待下拉框的出现
loc = (By.XPATH, ‘//a[text()="高级搜索"]‘)
WebDriverWait(driver, 10).until(EC.visibility_of_element_located(loc))
driver.find_element_by_xpath(‘//a[text()="高级搜索"]‘).click()

# 设置等待,等待select下拉框出现
select_loc = (By.XPATH, ‘//select[@name="ft"]‘)
WebDriverWait(driver, 10).until(EC.visibility_of_element_located(select_loc))
ele = driver.find_element(*select_loc)

s = Select(ele)
# 以下标的方法定位下拉框中的元素
s.select_by_index(3)
time.sleep(2)
# 以value属性的方式定位下拉框的元素
s.select_by_value(‘pdf‘)
time.sleep(2)
# 以文本的方式定位下拉框元素
s.select_by_visible_text(‘所有格式‘)
time.sleep(2)

# 退出浏览器
driver.quit()

原文地址:https://www.cnblogs.com/xingyunqiu/p/11547235.html

时间: 2024-10-09 17:23:09

selenium中的下拉列表操作的相关文章

关于在selenium 中 webdriver 截图操作

package prictce; import java.io.File; import java.io.IOException; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.We

【复习】Selenium中鼠标相关操作

原文地址:https://blog.51cto.com/11926720/2482699

selenium中元素操作之上传操作(六)

上传操作分为两种情况: 1.input标签上传 如果是input可以直接输入路径的,那么直接调用send_keys输入路径,和前边的元素操作类似,在这里不再过多的赘述. 2.非input标签上传 非input标签上传的,则需要借助第三方的工具: 这里我们用python中的第三方库pywin32库,识别对话框句柄,进而进行上传操作 首先安装第三方库:pip install pywin32 借助winspy来辅助定位,winspy下载地址:https://sourceforge.net/projec

Selenium中的几种等待方式,需特别注意implicitlyWait的用法(转)

最近在项目过程中使用selenium 判断元素是否存在的时候 遇到一个很坑爹的问题, 用以下方法执行的时候每次都会等待很长一段时间,原因是因为对selenium实现方法了解不足导致一直找不到解决方法. private boolean isElementPresent(By by) {     try { driver.findElement(by);       return true;     } catch (NoSuchElementException e) {       return

[置顶]基于MVC4+EasyUI的Web开发框架经验总结(6)在页面中应用下拉列表的处理(转载)

[置顶]基于MVC4+EasyUI的Web开发框架经验总结(6)在页面中应用下拉列表的处理 在很多Web界面中,我们都可以看到很多下拉列表的元素,有些是固定的,有些是动态的:有些是字典内容,有些是其他表里面的名称字段:有时候引用的是外键ID,有时候引用的是名称文本内容:正确快速使用下拉列表的处理,可以提高我们程序界面的美观性和友好型,本文主要介绍在我的Web开发框架以及相关的扩展Web应用中用到的一些代表性下拉列表的处理场景,希望给大家做个参考学习. 1.固定下拉列表的处理 代表性的固定列表有人

HTML5移动开发之路(36)——jQuery中的DOM操作

本文为 兄弟连IT教育 机构官方 HTML5培训 教程,主要介绍:HTML5移动开发之路(36)--jQuery中的DOM操作 1.查询 利用选择器查找节点 使用 html() / text() / attr() 输出节点文本和属性值. 注意:下拉列表使用 val() [html] view plain copy print? <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery

转:Selenium中的几种等待方式,需特别注意implicitlyWait的用法

最近在项目过程中使用selenium 判断元素是否存在的时候 遇到一个很坑爹的问题, 用以下方法执行的时候每次都会等待很长一段时间,原因是因为对selenium实现方法了解不足导致一直找不到解决方法. private boolean isElementPresent(By by) {     try { driver.findElement(by);       return true;     } catch (NoSuchElementException e) {       return

Selenium中的几种等待方式,需特别注意implicitlyWait的用法

转自http://blog.csdn.net/pf20050904/article/details/20052485?utm_source=tuicool 最近在项目过程中使用selenium 判断元素是否存在的时候 遇到一个很坑爹的问题, 用以下方法执行的时候每次都会等待很长一段时间,原因是因为对selenium实现方法了解不足导致一直找不到解决方法. private boolean isElementPresent(By by) {    try { driver.findElement(b

在selenium中一些相对常用的JavaScript事件

输入框输入: 1.找到输入框的id,然后进行输入操作 ordinal :输入框的id parameter :需要输入的内容 browser.execute_script("document.getElementById(\'" + ordinal + "\').value=\'" + parameter + "\';") 元素点击: 1..找到元素(selenium找元素的8种方式的其中一种即可)对象然后进行点击 python: prompt该元