Length无法为webElement查找String的长度

Length无法为webElement查找String的长度

在这种情况下,“总计”的值为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()
inputtextarea标记的值存储在value属性中。
请查看下面的简单测试,以证明这一点。
这是一个simple test page,其中包含两个字段-inputtextarea

<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/

10-13 06:54