如何解决Selenium:是否可以在整个页面中搜索给定的关键字?
| 我正在测试一个非常类似于Google的网站。因此,如果用户输入了一些搜索词,例如\“ Selenium Tutorial \”,则结果页面将具有一串带有摘要的链接。 每个结果都在一个表中。因此,如果有10个结果,则有10个表。 对于每个表(结果),都有几行(例如r1,r2,r3等)。 r1是结果的标题,r2是描述,如大小,格式,作者等,而r3是代码段。我需要确保r3包含单词“硒”,“教程”。我尝试做类似的事情:String variable2 = Sel.GetTable(\"//div[@id=\'RepeaterContent\']/table[2].3.1\");
这给了我片段r3中的文字。但是,我需要获取所有表的文本(摘要)(结果)。然后使用诸如contains之类的代码对代码段进行搜索。
我不确定以下代码是否很有用,因为我无法复制源代码,但是结果页面的源看起来类似于以下内容:
<HTML>
<BODY>
<DIV id=\"RepeaterContent\">
<TABLE>
<TR>
<TD>
<SPAN>
<a id=\"linkcft87021\" class=\"ResultList_Title_Link\" title=\"\" href=\"DocsDetail.aspx?searchtranid=1bnt5d92\" target=\"\">Sample Tutorial</a>
<br>
</SPAN>
</TD>
</TR>
<TR>
<TD>
...an integrated development environment for performing Selenium tests...
</TD>
</TR>
</TABLE>
<TABLE>
<TR>
<TD>
<SPAN>
<a id=\"linkcft87021\" class=\"ResultList_Title_Link\" title=\"\" href=\"DocsDetail.aspx?searchtranid=1g5t5d92\" target=\"\">Selenium</a>
<br>
</SPAN>
</TD>
</TR>
<TR>
<TD>
...With Selenium you can automate the whole process and run the test as required. In this part we will see how to create a simple test in Selenium...
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
以下是我的硒测试:
namespace Automation
{
[TestClass]
public class SEARCH
{
public ISelenium Sel;
public string TestStatus = \"FAIL\";
// Constructor
public LIT_SEARCH_TAB()
{
Sel = new DefaultSelenium(\"localhost\",4444,\"*iexplore\",\"http://localhost:8080\");
Sel.Start();
}
[TestMethod]
public void SEARCH_METHOD()
{
Sel.Open(\"http://localhost:8080\");
Sel.Type(\"Search_Text_Box\",\"Selenium Tutorial\");
Sel.Click(\"Go\");
if (Sel.IsTextPresent(\"Selenium\") || (Sel.IsTextPresent(\"Tutorial\")))
{
TestStatus = \"PASS\";
}
}
}
}
因此,我想确保在整个结果页面中都有单词“ Selenium”和“ Tutorial \”。 Selenium中有什么方法可以满足我的要求?有些方法会在整个页面中搜索这些关键字,并验证这些关键字是否存在?提前致谢。
解决方法
您可以使用
IsTextPresent(pattern)
检查页面上是否有特定的字符串。 pattern
可以是glob
,regexp
或exact
之一,默认值为is5ѭ。
, try {
$this->assertTrue((bool)preg_match(\'/Selenium/\',$this->getText(\"//div[@id=\'RepeaterContent\']/table[1]/tbody/tr[2]/td\")););
} catch (PHPUnit_Framework_AssertionFailedError $e) {
array_push($this->verificationErrors,$e->toString());
}
这是您在PHP中所需的代码。
你必须使用
命令verifyText
目标// tr [2] / td
正则表达式值:硒
这将在给定的目标中搜索Selenium,您可以替换所需的单词或使用RE。
谢谢
, Selenium有一个getBodyText方法,该方法为您提供整个页面的HTML文本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。