在这种情况下,“总计”的值为0:
我不确定为什么不起作用?
List<IWebElement> list = new List<IWebElement>();
list = ABCPageObject.AbcTextArea().ToList();
foreach (IWebElement Option in list)
{
Option.Click();
Option.Clear();
Option.SendKeys("ThisisTheasdfdsaOutput1234567890ThisisTheVWXYZer!O@ut#pu$tT%hi^sis&The*Tw(i)t<t>er[O]u{t}p/utT/ABCDEFGHIJKLMNOPQRSTU");
Thread.Sleep(2000);
}
foreach(IWebElement Option in list)
{
var total = Option.Text.Length;
// total is 0 here when we debug
if(total == 116)
{
Utility.Logger.Write("Add Out");
}
}
最佳答案
您需要检查value
属性而不是text()
。input
和textarea
标记的值存储在value
属性中。
请查看下面的简单测试,以证明这一点。
这是一个simple test page,其中包含两个字段-input
和textarea
<div>
<textarea id="mytextarea"></textarea>
</div>
<div>
<input id="myinput" />
</div>
这是一个简单的测试代码(在Java中):
driver.get("https://jsfiddle.net/f89zxd1w/");
driver.switchTo().frame("result");
driver.findElement(By.id("mytextarea")).sendKeys("Some text");
driver.findElement(By.id("myinput")).sendKeys("Some other text");
WebElement textArea = driver.findElement(By.id("mytextarea"));
String areaText = textArea.getText();
String areaValue = textArea.getAttribute("value");
System.out.format("Area text = %s\n", areaText);
System.out.format("Area value = %s\n", areaValue);
WebElement input = driver.findElement(By.id("myinput"));
String inputText = input.getText();
String inputValue = input.getAttribute("value");
System.out.format("Input text = %s\n", inputText);
System.out.format("Input value = %s\n", inputValue);
结果是:
Area text =
Area value = Some text
Input text =
Input value = Some other text
关于c# - Text.Length无法为webElement查找String的长度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47314552/