有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我被困在TestCase的一个步骤上。Selenium Web驱动程序

我试图在java中使用SeleniumWebDriver自动化一个测试用例,但有一步我遇到了困难。我需要找到一个元素并单击它。我试图通过id、类、csselector、文本来定位它。。。但它不起作用

这就是我所做的:

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) 个答案

  1. # 1 楼答案

    我觉得这可能是因为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