我正在使用Appium
和Robotframework
进行自动化测试。如果禁用输入字段,则关键字Element Should Contain Text
似乎返回空。如何验证禁用的输入字段是否具有给定值?
<input type="text" id="myId" name="myName" disabled />
我收到以下错误:
Element 'myId' should have contained text 'myValue' but its text was ''.
答案 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}
我没有得到价值,但我确定它不是空的。