gpt4 book ai didi

selenium webdriver 选择元素

转载 作者:行者123 更新时间:2023-12-04 02:44:08 25 4
gpt4 key购买 nike

我的网站上有一个选择控件。我正在使用页面对象与页面交互。如果我这样做(在我的类(class)下的前 2 行和我的方法中的 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);

关于selenium webdriver 选择元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9604336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com