我在我的站点上有一个选择控件。我正在使用页面对象与页面交互。如果我这样做了(使用我的类下的前两行和我的方法中的selectByValue
)
@FindBy(id="foo")
private Select foo;
foo.selectByValue("myValue");
如果指针为空,则会失败。我也尝试过不使用@FindBy
。
现在,如果我在我的方法中这样做,它就可以正常工作并选择正确的项
Select foo = new Select(sDriver.findElement(By.id("foo")));
foo.selectByValue("myValue");
下面是该控件的实际Web片段(编辑以保护无辜者)
<select id="foo" name="service_name">
<option selected="selected" value="one">one</option>
<option value="two">two</option>
<option value="three">three</option>
</select>
让我说,我有一个解决我的问题**,但**我不明白为什么"* 正常 *"的路径是行不通的。
3条答案
按热度按时间e5nqia271#
这是因为
Select
类具有以下构造函数:请参阅Javadoc
如果你这样做:
应该可以的
顺便说一句,我在“变通方法”中使用了与您相同的方法,因为我不想在需要Select对象时转换新的WebElement对象。
返回
WebElement
,这就是它工作的原因。你也可以这样做:mbjcgjjk2#
有两种方法可以选择选项值:
第一:
第二:
guz6ccqo3#
另一种实现方法是对所有onchange下拉选择框使用下面方法传递id和选择,它就可以工作了
通过执行向上和向下操作,我们正在初始化脚本onchange.......