驱动程序无法通过xpath找到元素defaultCurrency。

时间:2012-11-13 11:47:00

标签: selenium webdriver selenium-webdriver

驱动程序无法通过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>

2 个答案:

答案 0 :(得分:0)

仅当元素不可见时,WebDriver抛出ElementNotVisibleException异常。因此,看一下元素(例如通过Firebug)并注意哪个元素激活他以使其可见。然后尝试激活第一个元素,然后对所需元素进行操作。或者也许元素被设计为在特定时刻是不可见的,因此不应该允许你对它执行操作。

答案 1 :(得分:0)

使用此

Select currency = new Select(driver.findElement(By.cssSelector("Select[id="defaultCurrency"]")));