驱动程序无法通过xpath找到元素defaultCurrency。
错误 - “org.openqa.selenium.ElementNotVisibleException:元素当前不可见,因此可能无法与之交互。”
代码:
driver.findElement(By.xpath("//[@id='currency']/fieldset[2]/table/tbody/tr[1]/td[2]")).click();
WebElement defaultCurrency = driver.findElement(By.xpath(".//*[@id='defaultCurrency']"));
Select defaultCurrency_Select = new Select(defaultCurrency); defaultCurrency_Select.selectByVisibleText("USD");
源代码:
<td>
<select id="defaultCurrency" class="validate[required]" onchange="javascript:clrErrors()" style="height:25px;width:160px;" name="defCurrency.defaultCurrency">
<option value="">Select Currency..</option>
<option value="INR">GBP</option>
<option value="EUR">EUR</option>
<option value="USD">USD</option>
</select>
</td>
答案 0 :(得分:0)
仅当元素不可见时,WebDriver抛出ElementNotVisibleException
异常。因此,看一下元素(例如通过Firebug)并注意哪个元素激活他以使其可见。然后尝试激活第一个元素,然后对所需元素进行操作。或者也许元素被设计为在特定时刻是不可见的,因此不应该允许你对它执行操作。
答案 1 :(得分:0)
使用此
Select currency = new Select(driver.findElement(By.cssSelector("Select[id="defaultCurrency"]")));