gpt4 book ai didi

java - Webdriver + HtmlUnitDriver + Java + 下拉

转载 作者:搜寻专家 更新时间:2023-11-01 02:32:29 26 4
gpt4 key购买 nike

我是这个论坛的新手,对 Selenium 和它周围的一切也有点陌生。我对Java有点熟悉,但我肯定不是专家

我知道有这样的话题,但我还没有找到我的答案......因为其中一些是在 C# 或 .NET 中,...。

我正在使用 Webdriver 和 HtmlUnitDriver,因为我不想让 Selenium 弹出浏览器。一切都必须在后台完成(不想看到任何东西,只有 1 个结果(无论是否一切顺利))。

好了,说了这么多,情况是这样的。我正在检查一个网站,有时我需要从下拉列表中选择一个选项(假设是第二个选项)。但问题是这行不通......

这是我正在使用的一些代码:

public class LoginLogout implements SeleniumTest{

private WebDriver webDriver;

@Override
public void setUp(String baseURL){
webDriver = new HtmlUnitDriver();
}

@Override
public void invoke(){
// Login

webDriver.get("http://website");
webDriver.findElement(By.name("username")).sendKeys("Dummy123456");
webDriver.findElement(By.name("password")).sendKeys("Muddy");
webDriver.findElement(By.className("Submit")).click();
webDriver.findElement(By.name("/catalogue")).click();
webDriver.findElement(By.name("/catalogue/search/synthesis/s10")).click();
webDriver.findElement(By.name("firstYear")).findElement(By.name("2008")).isSelected();
webDriver.findElement(By.name("lastYear")).findElement(By.name("2008")).isSelected();
webDriver.findElement(By.className("Submit")).click();
webDriver.findElement(By.className("Label")).click();
}

@Override
public void tearDown(){
webDriver.close();
}
}

我选择 FIRSTYEAR 和 LASTYEAR 的地方就是错误的地方......

谁能帮帮我!!!如果我能让它工作(在你的帮助下),那就太好了

提前致谢

最佳答案

isSelected() 只会告诉您该元素是否已被选中,它实际上不会设置任何内容。我相信您想要做的是将 WebElement 转换为 Select 对象,该对象提供用于选择选择框项目的方法。

Select selectBox = (Select)webDriver.findElement(By.name("firstYear"));
selectBox.selectByValue("2008");

您也可以按索引进行选择,在我实际上并不关心选择了哪个值但想确保选择了某些值的情况下,我发现它更可靠。

selectBox.selectByIndex(0); // chooses first item.

关于java - Webdriver + HtmlUnitDriver + Java + 下拉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5805585/

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