当前位置: 首页 > 面试题库 >

seleniumwebdriver选择元素

昝宜
2023-03-14
问题内容

我的网站上有一个选择控件。我正在使用页面对象与页面进行交互。如果我这样做(在我的课程下的前两行和selectByValue我的方法中)

@FindBy(id="foo")
private Select foo;

foo.selectByValue("myValue");

它以空指针失败。我也尝试了没有@FindBy

现在,如果我在我的方法中执行此操作,则一切正常,然后选择正确的项目

Select foo = new Select(sDriver.findElement(By.id("foo")));
foo.selectByValue("myValue");

这是该控件的实际网页摘要(已编辑以保护无辜者)

<select id="foo" name="service_name">
    <option selected="selected" value="one">one</option>
    <option value="two">two</option>
    <option value="three">three</option>
</select>

让我说我可以解决我的问题, 但是 我不明白为什么“ 正常 ”路径无法正常工作。


问题答案:

那是因为Select该类具有以下构造函数:

Select(WebElement element)

见Javadoc

因此,如果您执行以下操作:

@FindBy(id="foo")
private WebElement wannabeSelect;
Select realSelect = new Select(wannabeSelect);
realSelect.selectByValue("myValue");

它应该工作。

顺便说一句,在“解决方法”中,我使用与您相同的方法,因为当我需要Select对象时,我不想投射新的WebElement对象。但是无论如何,

sDriver.findElement(By.id("foo"));

返回WebElement,所以这就是为什么它起作用。您也可以这样做:

 WebElement wannabeSelect = sDriver.findElement(By.id("foo"));
 Select foo = new Select(wannabeSelect);


 类似资料:
  • 本文向大家介绍Jsoup 使用CSS选择器选择元素,包括了Jsoup 使用CSS选择器选择元素的使用技巧和注意事项,需要的朋友参考一下 示例 您可以在此处找到支持的选择器的详细概述。

  • 我有一个选择元素,里面有多个选项: 对于这里看到的每个选项元素,我都有另一个select元素。基本上,我在一个选择元素中列出了一系列音乐流派,在它下面,是与每一个“主流派”相关的子流派。 我想做的是使子体裁只有在相对体裁被选中时才可见。例如,如果用户选择“Pop”,我想向他们显示包含Pop子类型的相关选择字段。 我的HTML标记实际上是由WordPress插件生成的,不幸的是,我无法编辑它。也就是

  • https://imgur.com/vfhp8n7.png 当我单击B按钮时,整行隐藏 我需要硒来点击B按钮,然后点击下一个B按钮 我想执行,但是数字4352,6820每次都不一样 你有什么想法吗? 编辑

  • 基本选择器是CSS中使用最频繁、最基础,也是CSS中最早定义的选择器。基本选择器包括元素选择器、类选择器、id选择器、群组选择器、通配选择器。 表 2-1 基本选择器 选择器 语法 功能描述 版本 元素选择器 E 选择指定类型的元素 1 类选择器 E.class 选择类型为E,且class属性值包含指定类名的元素 1 id选择器 E#id 选择类型为E,且id属性值为指定id的元素 1 群组选择器

  • 本文向大家介绍jQuery 选择元素的子元素,包括了jQuery 选择元素的子元素的使用技巧和注意事项,需要的朋友参考一下 示例 要选择元素的子代,可以使用children()方法。 更改元素所有子.parent元素的颜色: 该方法接受一个可选selector参数,该参数可用于过滤返回的元素。            

  • 问题内容: 我想选择伪元素 这是我的CSS: 码 问题答案: 直接绑定到伪元素是不可能的,因为它们不是DOM的一部分,但是可以通过绑定到父元素并测试与作用于该元素的元素相关的偏移来近似达到预期的效果: 以下显示为,其中单击“ ELEMENT”和“ ++”分别会触发不同的行为: