Selenium无法找到元素

时间:2016-06-28 11:27:17

标签: xpath selenium-webdriver

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;

2 个答案:

答案 0 :(得分:0)

xpath中似乎有一个额外的错误。你可能想试试这个“// * [@ id ='PageHeader_logoUrl']”

您可以查找更多策略here

答案 1 :(得分:0)

首先尝试搜索父元素:

by.Xpath("//table[@id='Table3']//a[@id='PageHeader_logoUrl']")

另外我的建议(再次)是先搜索最近的/父元素,然后调试你是否真的得到了你想要的元素。