0

在这方面需要一些帮助。尝试同时学习 Java 和 selenium 并不好,但必须这样做:(

我正在尝试测试一个下拉点框,其中包含:

<select name="sport" id="sport">
 <option value="1">Soccer</option>
 <option value="2">Basketball</option>
 </select>

我要执行以下操作: 1:存在断言框,其文本为足球和篮球 2:单击篮球,然后再次单击足球。3:断言此框下方表格中的更改。(我认为是否已完成但需要上述内容)

到目前为止的代码:

    Select sportDropdown = new Select(webBrowser.findElement(By.id("sport")));
    sportDropdown.selectByVisibleText("Soccer");
    assertEquals(sportDropdown, "Soccer");

收到错误:

java.lang.AssertionError:预期:org.openqa.selenium.support.ui.Select@278806c4 实际:足球

我不知道这个“预期”值来自哪里,所以任何指针都会是很棒的人。

请注意,这一切都在 Java 中,因此请不要在 C# 中提交代码帮助。让我的生活更艰难:(

谢谢J

4

2 回答 2

2

您需要获取所选选项的文本才能使您的断言语句起作用。目前您正在询问一个WebElement对象是否等于 a String

Select sportDropdown = new Select(webBrowser.findElement(By.id("sport")));
sportDropdown.selectByVisibleText("Soccer");
assertEquals(sportDropdown.getFirstSelectedOption().getText(), "Soccer");
于 2013-08-13T15:42:34.263 回答
0

对于值等于文本值的任何人,请使用 get 属性。它对我有用。可能是为别人工作。

Select sportDropdown = new Select(driver.findElement(By.id("id"))); sportDropdown.selectByValue("Value"); Thread.sleep(3000);//This was needed since the page is refreshed whenever the value is selected. System.out.println(driver.findElement(By.id("id")).getAttribute("value"));

于 2013-11-19T19:12:04.650 回答