如何从webdriver中的禁用输入中获取值

时间:2015-12-08 07:47:33

标签: selenium selenium-webdriver

我的HTML代码是 -

    <input id="txtPortalLogin" class="form-control input-sm" type="text" disabled="disabled" placeholder="No Link" value=""/>

请协助一些代码从禁用字段中获取值。 附上屏幕截图,以便您找到我正在谈论的文本值。 Input Fields are disabled and I want values from shown screenshot

4 个答案:

答案 0 :(得分:0)

我知道如何使用Python代码获取此值:

from selenium import webdriver
driver = webdriver.Firefox()
driver.get('your_page_url')
disabled_input_field = driver.find_element_by_id("txtPortalLogin")
value = disabled_input_field.get_attribute('value')

答案 1 :(得分:0)

使用selenium中的javascript执行器来执行返回html元素(输入)值的javascript代码。与下面相似的东西

 String value = "";
if (driver instanceof JavascriptExecutor) {
    String value = (String)((JavascriptExecutor) driver)
        .executeScript("return document.getElementById('txtPortalLogin').value");
}

答案 2 :(得分:0)

在C#中它将是

driver.FindElement(By.Id("txtPortalLogin")).GetAttribute("value");

但是你也可以使用JavaScript执行器这样做:

var value = ((IJavascriptExecutor)driver).ExecuteScript("return $('#txtPortalLogin').attr('value')").ToString();

EDIT;我认为OP可能希望将https://production等部分移出该领域。我不是100%肯定该怎么做,抱歉。

我也找到了this link,它可以解答你的问题; TLDR使其只读取而不是禁用,这使得后面的值仍然可以访问但用户不能更改。

答案 3 :(得分:0)

通常driver.getAtribute("value");有效。但由于值字段为空,您必须使用JavaScriptExecutor -

JavascriptExecutor je = (JavascriptExecutor) webDriver;

String value = je.executeScript("return angular.element(arguments[0]).scope().{{modalValue:put modal value from HTML}};", {{webElement}}).toString();

return value;