点击表中的按钮与selenium webdriver

时间:2015-12-09 08:50:47

标签: selenium xpath

上下文 所以我必须为我的工作进行自动化测试。我遇到了这个问题: - 我有一个包含'分包商的桌子' - 如果我创建了一个'分包商'它将进入列表(表) - 但总是在一个随机的地方(第1行,第2行,第8行) - 此外,ID每次都会发生变化。 - 所有行在最后一个(第7列)中有4个按钮。 - 使用与tablerow相同的名称和相同的ID。

Quesiton

我必须点击第4行上的按钮。

我该怎么做? 如果我使用Xpath,只需点击第一行的按钮即可。 感谢

EDIT!                 //得到桌子                 WebElement baseTable = driver.findElement(By.id(" gridSubContractors"));

            String first_part = "//*[@id='gridSubContractors']/tbody/tr[";
            String second_part = "]/td[3]";

            String final_xpath;

            int numOfRow = baseTable.findElements(By.tagName("tr")).size(); 
            boolean found = false;
             WebElement cellIneed = null;
            for (int i=1; i<=numOfRow && found==false; i++){
                final_xpath = first_part+i+second_part;
                String test_name = baseTable.findElement(By.xpath(final_xpath)).getText();
                System.out.println(test_name);
                if (test_name.equals(subcon)){
                    WebElement tableRow = baseTable.findElement(By.xpath(final_xpath));
                    cellIneed = tableRow.findElement(By.xpath("//td[7]"));
                    found=true;
                }
            }
            if (cellIneed != null){
            cellIneed.findElement(By.xpath("//a [@data-original-title='Subcontractor name']")).click();
            }

这是我的代码,不能在这里得到代码。但是这段代码的作用是点击表格中的第一个按钮,其名称为&#39;转包商名称&#39;而不是在&#34中找到的行中的那个; if(test_name.equals(subcon)&#34; .subcon =需要在表中找到的转包商的名称。它是由此创建的:&#34; subcon = name.getTextContent();&#34;代码中较早。 希望这是您需要的信息

1 个答案:

答案 0 :(得分:0)

自升级到新版本以来,我遇到了类似的问题。

我发现的问题是search / div [] / [] ...... 不像我以前习惯的那样工作。

我通过运行结果元素并检查应该单击哪个来避免它。

也许我错了,但对我而言,接缝是硒中的一个错误。