C# Selenium:将文本存储到变量中以备将来验证
在VisualStudio中使用Selenium 我需要帮助写两个测试用例。 更新:C# Selenium:将文本存储到变量中以备将来验证,c#,html,visual-studio,selenium,validation,C#,Html,Visual Studio,Selenium,Validation,在VisualStudio中使用Selenium 我需要帮助写两个测试用例。 更新: 从文本字段复制序列号并将此数据存储在变量中 从另一个文本字段复制序列号,并将该数据存储在另一个变量中。然后比较变量A和变量B,以验证两者是否相同 我希望这些测试用例是动态的,所以我不必指定实际的序列号。相反,我想复制的内容,不管它们包含什么序列号 我要复制序列号的HTML如下所示: <lina-list-item _ngcontent-c34="" _nghost-c40=""> <p _n
的内容,不管它们包含什么序列号
我要复制序列号的HTML如下所示:
<lina-list-item _ngcontent-c34="" _nghost-c40="">
<p _ngcontent-c34="">Serienummer</p>
<h3 _ngcontent-c34="">Calpower11<!----></h3>
</lina-list-item>
然后我想将数据从另一个
复制到变量B中
这是此特定
的完整Xpath:
第二个
的HTML:
序列号
Calpower11
正如您所看到的,HTML没有太大区别。只有通过查看完整的Xpath,您才能注意到差异
注意:所有测试用例都被称为“public void TestCaseName()”
,所以我希望这将使我创建的变量在所有其他测试用例中都可以访问
总结:
复制到变量A中
中的文本复制到变量B中可以这样存储文本值或属性值
IWebElement element = driver.FindElement(By.Xpath("//lina-list-item[1]/h3[contains(text(),'Calpower11')]"));
String serialNumber = element.Text;
if (serialNumber.Equals("Calpower11", StringComparison.InvariantCultureIgnoreCase))
{
//statement
}
或
然后像那样比较序列号
IWebElement element = driver.FindElement(By.Xpath("//lina-list-item[1]/h3[contains(text(),'Calpower11')]"));
String serialNumber = element.Text;
if (serialNumber.Equals("Calpower11", StringComparison.InvariantCultureIgnoreCase))
{
//statement
}
通过文本识别一个元素,然后稍后使用
.text
提取相同的文本不是理想的方法。你能用更多的outerHTML来更新这个问题吗?这样两个元素都可以被唯一地识别出来?@DebanjanB我已经更新了这个问题。我已经为两个不同的
指定了完整的Xpath,因此更容易识别它们。如果您需要更多信息,请告诉我。使用绝对Xpath是开始的好方法,但从长远来看,您可能更喜欢相对Xpath。因此,基于文本的实际HTML对于规范地回答您的问题是必要的。@DebanjanB如果我试图复制整个HTML文档并将其粘贴到此处,它太大,并且会使其“树结构”松动。使用Selenium IDE,我能够识别相对Xpath。你能帮我吗。或者你需要整个HTML?如果基于文本的HTML放松了树状结构,那也没关系,最重要的是我们需要包含父节点的HTML,这将帮助我们唯一地识别两个节点。对不起,我认为我的第一篇文章有点不清楚。我不想在任何地方写入特定的序列号(Calpower11)。我希望测试用例是动态的。请阅读我更新的问题。@David:您需要共享url或更多html,以检查网页上是否存在两个元素。我已在google文档链接中添加了html。见更新的问题。
IWebElement element = driver.FindElement(By.Xpath("//lina-list-item[1]/h3[contains(text(),'Calpower11')]"));
String serialNumber = element.GetAttribute("innerHtml");
if (serialNumber.Equals("Calpower11", StringComparison.InvariantCultureIgnoreCase))
{
//statement
}