硒不能找到这个元素

时间:2015-07-20 14:43:35

标签: java html selenium selenium-webdriver

我试图通过几种方法点击网站上的元素:ID,相对和绝对XPath。这些方法中的每一个都失败了,因为页面的HTML被设置为单个页面应用程序,并且有几个具有相同ID的按钮等。我想知道我可以做些什么来解决这个问题,以便能够点击按钮,因为Selenium很难区分几个相似的按钮。

这是元素的一些HTML:

<div id="page-15" class="page active-page" style="position: absolute; left: 0px;">
    <div class="main-page">
        <div class="content-page">
            <div class="head"></div>
            <div class="page-body" style="background: none repeat scroll 0% 0% rgb(244, 244, 244);"></div>
            <div class="bottom">
                <button id="wotc-button" class="form-right wotc-button wotc-button-ja ui-button ui-widget ui…ate-default ui-corner-all ui-button-text-only ui-state-focus" role="button" name="wotc-button" aria-disabled="false"></button>
            </div>
        </div>
    </div>
</div>

</div>

我要选择的按钮是id="wotc-button"

的按钮

相对XPath:.//*[@id='wotc-button']

绝对XPath:html/body/div[3]/div/div[3]/div/div/div[2]/div/div[1]/div[17]/div/div/div/div[2]/div/form/div/table/tbody/tr/td/table/tbody/tr/td/div[2]/label

我用来查找此元素的方法是:

public static WebElement waitFindById(String id) { return wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(id))); }

public static WebElement waitFindByXpath(String xpath) { return wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(xpath))); }

1 个答案:

答案 0 :(得分:1)

听起来你只需要一个“活动页面”中的按钮:

By.cssSelector("div.active-page button#wotc-button")