我正在使用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 ''.
我正在使用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 ''.
确保你的代码是正确的并且你传递了正确的 id/classname。如果这不起作用,请发布您正在使用的 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">
要获取 value 属性 -
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");
如果这不起作用,请告诉我。
如果我在禁用字段中使用Element or page contains text..
. Get Value
但是,我们可以通过使用然后将字段值与您要断言的值进行比较来比较字段中的文本should be equal
。在您的情况下,您可以做的是,
${valueInField} Get Value myId
should be equal ${valueInField} ${myValue}
我解决了这个问题。
*** Keywords ***
Should Not Be Empty
[Arguments] ${locator}
${getValueOfTextField}= Get Element Attribute ${locator} value
Should Not Be Empty ${getValueOfTextField}
我没有得到值,但我确定它不是空的。