2015-04-17 46 views
1

我想在java中使用Selenium WebDriver自动化一个测试用例,但我陷入了一个步骤。我需要找到一个元素并点击它。我试图通过id,按类,按csselector,按licktext找到它......但它没有工作。我被困在TestCase的一个步骤上。硒Webdriver

这是我做过什么:

driver.findElement(By.cssSelector("a[href=http://mucs70064.corp.knorr-bremse.com:1080/Windchill/app/#ptc1/site/listUtilities?oid=OR%3Awt.inf.container.ExchangeContainer%3A5&u8=1]")).click();  
driver.findElement(By.cssSelector("div[ext\\:tree-node-id*='site'][ext\\:tree-node-id*='listUtilities'] a")).click();  
driver.findElement(By.className("x-tree-node-anchor")).click();  
driver.findElement(By.className("x-tree-node-indent")).click();   

遗憾的是上述努力的声明没有之一。有谁知道我该怎么办?我为我的浏览器的开发人员工具显示了一张照片,但由于我没有足够的声誉来上传它,因此您可以在以下链接中看到该图像。

enter link description here

我真的很感激任何帮助!

问候 非常感谢 巴勃罗

+1

你能发布HTML代码吗?你遇到了什么错误? – FDM

+0

我没有收到错误。只是运行测试用例的一部分后没有问题,我到达了程序无法找到应点击的元素的步骤。 我上传了一张照片,其中包含显示开发者工具的信息,当我指向该元素时。 您在我发布的链接中找到这张照片 –

+0

您的链接显示“您无法访问此相册” – FDM

回答

0

我觉得这可能是因为unselectable属性的值是on。您可以等到该属性的值更改。我看到的其他属性是hidefocus=on

WebDriverWait wait = new WebDriverWait(driver,10); 

wait.until(new ExpectedCondition<Boolean>() { 
      public Boolean apply(WebDriver driver) { 
         WebElement button = driver.findElement(By.xpath("xpath")); 
         String enabled = button.getAttribute("unselectable"); 
         if(enabled.equals("off")) 
          return true; 
         else 
          return false; 
        } 
}); 

编辑

获取所有的链接,然后点击最后一个。

List<WebElement> links = driver.findElements(By.className("x-tree-node-anchor")); 
links.get(links.size()-1); //this will give you the last link 
+0

问题是我有一个像这样的图像显示的元素列表 http://www.m-i-u.de/display-i93962bnbgp5.html 我必须选择最后一个元素(Diensprogramme)。 HTML代码当然包含每个元素的信息。我会告诉你最后2个元素的信息(我的是红色标记的)。 http://www.m-i-u.de/display-i93961bxgflz.html 因此,如图所示,每个元素都有“不可选择”或“隐藏焦点” 我认为它没有正常工作。 –

+0

你尝试过'linkText'吗?如果不是这样,请尝试获取所有链接的列表。我编辑了我的答案。 – LittlePanda

+0

Thnaks很多为您的答案。当我尝试获取所有链接时,我现在正在发生错误。 错误说:类型列表不是泛型的,它不能用参数参数