除了我为工作编写的自动化外,我从来没有真的需要使用XML
。也许我一直在做错,或者我刚刚......幸运?XML解析和自动化
话虽这么说,我有一些麻烦与解析XML
文件。 XML
的结构如下所示:
// I have removed the username and passwords as they are sensitive
<?xml version="1.0" encoding="UTF-8"?>
<Logins>
<Login>
<Username>xxx</Username>
<Password>xxx</Password>
</Login>
...
</Logins>
够简单。我需要做的是从每个节点中提取用户名和密码,并将它们分成两个单独的变量。之后,我有一些自动化代码可以找到3个元素(用户名,密码,提交按钮),并与它们进行交互以便登录。然后我执行冒烟测试以检查图像并关闭浏览器。该代码是在这里:
chromeDriver.FindElement(By.Id(@"userNameInput")).SendKeys(userName.ToString());
chromeDriver.FindElement(By.Id(@"passwordInput")).SendKeys(passWord.ToString());
chromeDriver.FindElement(By.Id(@"submitButton")).Click();
Thread.Sleep(10);
bool isVisible = chromeDriver.FindElement(By.Id(@"logoImage")).Displayed;
正如你可能能够确定,我需要使用变量,userName
和passWord
。我都试过了,没有用,(其他的尝试中)的代码是在这里:
XDocument rootElement = XDocument.Load(@"C:\Test Data.xml");
IEnumerable<string> textSegment =
from segment in rootElement.Descendants("Username")
select (string)segment;
var userName = textSegment;
我得到的输出是这样的:
System.Linq.Enumerable + WhereSelectEnumerableIterator`2 [系统.Xml.Linq.XElement,System.String]
这是正在写/发送到用户名字段的文字输出,我完全不知道我在做什么错误在这一点上。我知道我在解析XML
时做错了什么。
是否** var userName = textSegment.ToList()**获取所需内容? –