java - 如何在Selenium 2中选择/获取下拉选项

我正在将我的selenium 1代码转换为selenium 2,并且无法找到在下拉菜单中选择标签的任何简单方法或获取下拉列表的选定值。 你知道如何在Selenium 2中做到这一点吗?

以下是两个在Selenium 1中有效但在2中不起作用的语句:

browser.select("//path_to_drop_down", "Value1");

browser.getSelectedValue("//path_to_drop_down");

8个解决方案

183 votes

查看有关使用selenium文档中的webdriver和Select类的javadoc填写表单的部分。

要根据标签选择选项:

Select select = new Select(driver.findElement(By.xpath("//path_to_drop_down")));

select.deselectAll();

select.selectByVisibleText("Value1");

要获得第一个选定值:

WebElement option = select.getFirstSelectedOption()

janderssn answered 2019-08-11T12:22:16Z

5 votes

driver.findElement(By.id("id_dropdown_menu")).click();

driver.findElement(By.xpath("xpath_from_seleniumIDE")).click();

祝好运

thrasher answered 2019-08-11T12:22:36Z

4 votes

在红宝石中不断使用,添加如下:

module Selenium

module WebDriver

class Element

def select(value)

self.find_elements(:tag_name => "option").find do |option|

if option.text == value

option.click

return

end

end

end

end

end

你将能够选择价值:

browser.find_element(:xpath, ".//xpath").select("Value")

AlekseiPetrovski answered 2019-08-11T12:23:07Z

3 votes

尝试使用:

selenium.select("id=items","label=engineering")

要么

selenium.select("id=items","index=3")

coolcub answered 2019-08-11T12:23:28Z

0 votes

与janderson上面发布的内容类似的选项就是在selenium 2中使用.GetAttribute方法。使用此方法,您可以获取具有您正在寻找的特定值或标签的任何项目。 这可用于确定元素是否具有标签,样式,值等。执行此操作的常用方法是循环显示下拉列表中的项目,直到找到所需的项目并选择它。 在C#中

int items = driver.FindElement(By.XPath("//path_to_drop_Down")).Count();

for(int i = 1; i <= items; i++)

{

string value = driver.FindElement(By.XPath("//path_to_drop_Down/option["+i+"]")).GetAttribute("Value1");

if(value.Conatains("Label_I_am_Looking_for"))

{

driver.FindElement(By.XPath("//path_to_drop_Down/option["+i+"]")).Click();

//Clicked on the index of the that has your label / value

}

}

Ben answered 2019-08-11T12:23:53Z

0 votes

你可以这样做:

public void selectDropDownValue(String ValueToSelect)

{

webelement findDropDownValue=driver.findElements(By.id("id1")) //this will find that dropdown

wait.until(ExpectedConditions.visibilityOf(findDropDownValue)); // wait till that dropdown appear

super.highlightElement(findDropDownValue); // highlight that dropdown

new Select(findDropDownValue).selectByValue(ValueToSelect); //select that option which u had passed as argument

}

Praveen answered 2019-08-11T12:24:17Z

0 votes

此方法将返回下拉列表的选定值,

public static String getSelected_visibleText(WebDriver driver, String elementType, String value)

{

WebElement element = Webelement_Finder.webElement_Finder(driver, elementType, value);

Select Selector = new Select(element);

Selector.getFirstSelectedOption();

String textval=Selector.getFirstSelectedOption().getText();

return textval;

}

与此同时

String textval = Selector.getFirstSelectedOption();

element.getText();

将返回下拉列表中的所有元素。

Jophin P John answered 2019-08-11T12:25:10Z

-2 votes

这是从下拉列表中选择值的代码

selectlocator的值将是下拉框的xpath或名称,而optionLocator将具有从下拉框中选择的值。

public static boolean select(final String selectLocator,

final String optionLocator) {

try {

element(selectLocator).clear();

element(selectLocator).sendKeys(Keys.PAGE_UP);

for (int k = 0; k <= new Select(element(selectLocator))

.getOptions().size() - 1; k++) {

combo1.add(element(selectLocator).getValue());

element(selectLocator).sendKeys(Keys.ARROW_DOWN);

}

if (combo1.contains(optionLocator)) {

element(selectLocator).clear();

new Select(element(selectLocator)).selectByValue(optionLocator);

combocheck = element(selectLocator).getValue();

combo = "";

return true;

} else {

element(selectLocator).clear();

combo = "The Value " + optionLocator

+ " Does Not Exist In The Combobox";

return false;

}

} catch (Exception e) {

e.printStackTrace();

errorcontrol.add(e.getMessage());

return false;

}

}

private static RenderedWebElement element(final String locator) {

try {

return (RenderedWebElement) drivers.findElement(by(locator));

} catch (Exception e) {

errorcontrol.add(e.getMessage());

return (RenderedWebElement) drivers.findElement(by(locator));

}

}

谢谢,

雷卡。

Kartmcad answered 2019-08-11T12:25:50Z

java如何读取下拉列表的值_java - 如何在Selenium 2中选择/获取下拉选项相关推荐

  1. java 获取下拉框的值_java中怎么获取下拉框的值

    展开全部 JComboBox有一个getSelectedItem()的方法得到选择的值和一个getSelectedIndex()得到选择值的索引.636f70793231313335323631343 ...

  2. java 判断单元格为空_java – 如何在Apache POI中获取Excel空单元格值?

    我有一个巨大的excel文件与吨的列,看起来像这样: – Column1 Column2 Column3 Column4 Column5 abc def ghi mno pqr ...... 这是我写 ...

  3. java清除浏览器记录_java – 如何在Selenium测试中清除浏览器缓存

    我正在使用WebDriver运行我的Selenium测试.我正在用一些循环重复测试,所以现在我想在JAVA中开始新的测试之前清除缓存. @Test public void ffAndIe() thro ...

  4. php中数组生成下拉选项,php数组生成html下拉列表的方法

    这篇文章主要介绍了php数组生成html下拉列表的方法,涉及php根据数组动态创建html代码的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了php数组生成html下拉列表的方法 ...

  5. java方法带参数返回值_Java方法中的参数太多,第6部分:方法返回

    java方法带参数返回值 在当前的系列文章中,我正在致力于减少调用Java方法和构造函数所需的参数数量,到目前为止,我一直专注于直接影响参数本身的方法( 自定义类型 , 参数对象 , 构建器模式 , ...

  6. java的下拉框的设置默认值,html下拉选项属性 html下拉框怎么设置默认值?

    html下拉框怎么设置默认值 设置selected属性就可以,具体的用法,首先打开hbuilder软件,新建一个html文档,里面写入一个select下拉框: 然后给select中一个option设置 ...

  7. java select 下拉选项框option定位_java select 下拉选项框opt

    java select 下拉选项框opt [2021-02-05 09:44:01]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace( ...

  8. 如何JQ将下拉列表的值传送给php,JQuery设置获取下拉菜单某个选项的值(比较全)...

    JQuery获取和设置Select选项 获取Select : 获取select 选中的 text : $("#ddlRegType").find("option:sele ...

  9. vue项目获取下拉框选中id_vue获取下拉框值

    vue获取下拉框的值,用vue-modle,只有点击下拉框的值才会赋值到下拉框中,初始时下拉框没有数据,而改用$event就不会出现这样的问题,下面看代码以及图解: v-model解决方式: {{it ...

最新文章

  1. Lync Server 2010的部署系列_第七章 部署边缘服务器(上)
  2. .NET Core实战项目之CMS 第九章 设计篇-白话架构设计
  3. unbantu上python安装步骤_如何在Ubuntu中安装Python 3.6?
  4. (原创) JavaScript是什么?
  5. mysql select效率_Mysql优化之selectcount效率_MySQL
  6. 鸿蒙硬件HI3861点灯
  7. 利用Python制作微信跳一跳外挂,又来带你装一波X!
  8. python将txt中文文本转二进制文本及转回
  9. 使用WireMock 伪造 Rest 服务
  10. python爬取视频代码
  11. directx初第一卷
  12. 微信小程序 登陆过期,请重新授权
  13. php怎么启动服务,如何打开php服务
  14. Linux修改时间 修改时区 | Linux时间校准
  15. IOS11.03越狱
  16. FTP客户端代码解析
  17. 梦幻西游手游最多人的服务器,梦幻西游手游哪个区人多及区服选择分析
  18. Ubuntu 开机显示 initramfs 进不了系统
  19. AVFrame相关api内存管理
  20. 关于USART波特率、TIM的外设预分频值

热门文章

  1. select标签中的选项分组
  2. linux 系统管理 启动管理器Grub lilo
  3. window .bat
  4. 我们网管不能自己贬低自己
  5. EasyNetQ介绍
  6. oracle数据库存储过程中NO_DATA_FOUND不起作用解决
  7. x-requested-with 请求头 区分ajax请求还是普通请求
  8. 领域模型驱动设计(Domain Driven Design)入门概述
  9. oracle中if/else功能的实现的3种写法
  10. C# Socket编程