Selenium无法找到元素。 我正在尝试使用PageHeader_logourl找到一个id 但是它无法找到带有xpath表达式的元素。
我做错了什么
这是html代码
<DIV id="page" class="page">
<DIV id="wrapper" class="wrapper">
<DIV id="header" class="header">
<TABLE width="100%" height="40" cellspacing="0" cellpadding="0" border="0" ID="Table2">
<TR>
<TD>
<TABLE height="40" cellspacing="0" cellpadding="0" border="0" ID="Table3">
<TR>
<TD><a href="http://www.scania.com" id="PageHeader_logoUrl" tabIndex="-1" target="_blank"><span id="HeaderLogoImage"></span></a></TD>
<TD valign="middle"><label id="PageHeader_lblProjectName" class="projectname">Scania Trucks – SSS 4 TestR1</label></TD>
以下是我的硒代码的快照:
driver.findElement(By.xpath("//input[@name='UserNameInputText']")).sendKeys(username);
driver.findElement(By.xpath("//input[@name='Brand']")).sendKeys(password);
driver.findElement(By.xpath("//input[@name='CmdLogin']")).click();
Assert.assertTrue(isuserloggedin(),"Login failed");
}
public boolean isuserloggedin()
{
boolean flag = false;
if (!driver.findElements(By.id("Cancel")).isEmpty() ||
driver.findElement(By.xpath("//a[@id=['PageHeader_logoUrl']")).isDisplayed());
{
flag = true;
}
return flag;
答案 0 :(得分:0)
xpath
中似乎有一个额外的错误。你可能想试试这个“// * [@ id ='PageHeader_logoUrl']”
您可以查找更多策略here
答案 1 :(得分:0)
首先尝试搜索父元素:
by.Xpath("//table[@id='Table3']//a[@id='PageHeader_logoUrl']")
另外我的建议(再次)是先搜索最近的/父元素,然后调试你是否真的得到了你想要的元素。