虽然IDE很容易识别,但无法使用webdriver识别元素

时间:2015-09-08 14:27:51

标签: selenium-webdriver webdriver

我很难找到输入框并通过webdriver输入值 这是输入框的HTML代码

<div class="OCYEKPD-qb-a input-field-error" id="gwt-debug-lineItem-mainSizeWidget" style="display: block;">
    <span class="gwt-InlineLabel OCYEKPD-qb-c goog-inline-block" style="display: none;"></span>

    <div style="display: inline;">
        <input class="OCYEKPD-qb-e OCYEKPD-qb-l" style="width: 15px;" type="text">

        <div class="OCYEKPD-ld-a" style="display: none;"></div>
    </div>
</div>

这是我用来识别和发送值的代码

driver.findElement(By.id("gwt-debug-lineItem-mainSizeWidget")).sendKeys("300x250");

但是webdriver跳过框而不是输入值并移动到下一行,没有抛出错误或异常。

3 个答案:

答案 0 :(得分:0)

试试这个:

WebElement divElement = driver.findElement(By.id("gwt-debug-lineItem-mainSizeWidget"));
divElement.findElement(By.tagName("input")).sendKeys("300x250");

代码首先标识input元素所在的div容器。然后从这个容器中搜索它可以在这个容器中找到的第一个输入元素并发送你的字符串。

答案 1 :(得分:0)

您应该能够逐个查找元素,因为输入标记没有ID。你应该能够做到:

WebElement divElement = driver.findElement(By.ClassName("OCYEKPD-qb-e"));

答案 2 :(得分:-1)

尝试:

driver.find_element(By.ID("gwt-debug-lineItem-mainSizeWidget")).sendKeys("300x250");

您缺少下划线,ID需要大写。