我的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
答案 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;