元素应包含文本 - 用于禁用字段

时间:2017-07-17 14:37:13

标签: selenium appium robotframework-ide

我正在使用AppiumRobotframework进行自动化测试。如果禁用输入字段,则关键字Element Should Contain Text似乎返回空。如何验证禁用的输入字段是否具有给定值?

<input type="text" id="myId" name="myName" disabled />

我收到以下错误:

Element 'myId' should have contained text 'myValue' but its text was ''.

3 个答案:

答案 0 :(得分:0)

确保您的代码正确无误,并且您传递的是正确的ID /类名。如果这不起作用,请发布您正在使用的HTML代码。添加一些您可以尝试的示例: -

如果你的标签如下所示 -

<input disabled="true" id='data'>

您的代码应为 -

WebElement webElement = driver.findElements(By.id('my-id'));
webElement.getAttribute("disabled")

WebElement.getAttribute("id")

对于此标记 -

<input id="j_idt93:j_idt93" type="text" disabled="disabled" maxlength="2000" value="Pārtraukts">

获取值属性 -

String value = driver.findElement(By.id("j_idt93:j_idt93")).getAttribute("value");

如果这不起作用,您可能必须使用javascript执行程序 -

String value =  (String)((JavascriptExecutor) driver).executeScript("Java script query  in here to return value","");

您的查询应该是 -

return document.getElementById("j_idt93:j_idt93").getAttribute("value");

如果这不起作用,请告诉我。

答案 1 :(得分:0)

如果我通过使用Element or page contains text..在禁用字段中声明文本,则其true硒将返回空。但是,我们可以使用Get Value比较字段中的文本,然后将字段值与您要通过should be equal声明的值进行比较。 就您而言,您可以做的就是

${valueInField}      Get Value            myId

should be equal      ${valueInField}      ${myValue}

答案 2 :(得分:0)

我解决了这个问题。

*** Keywords ***
Should Not Be Empty
    [Arguments]                 ${locator}
    ${getValueOfTextField}=     Get Element Attribute       ${locator}     value
    Should Not Be Empty         ${getValueOfTextField}

我没有得到价值,但我确定它不是空的。