6

以下是按钮的 HTML 代码:

<span>
<button class="buttonLargeAlt" onclick="javascript:submitCheckout(this.form);"type="submit">Checkout</button>
</span>

我试过了driver.findElement(By.xpath("//span[contains(.,'Checkout')]")).click();

它不工作...

还有其他想法吗?页面上有 2 个同名按钮。

4

6 回答 6

4
driver.submit()

应该管用。如果 DOM 中按钮的顺序始终相同,这也应该有效:

driver.findElements(By.className("buttonLargeAlt")).get(0).click();

如果它是您页面上的第一个 buttonLargeAlt 按钮。

于 2012-08-29T12:45:59.440 回答
3

尝试:

//span/button[text()='Checkout' and @class='buttonLargeAlt']

或者

//span/button[text()='Checkout'][1]

此外,如果您知道需要单击 2 个按钮中的哪一个,您可以尝试:

//span/button[text()='Checkout'][1]

找到的第一个按钮在哪里[1],文本为'Checkout'

于 2012-08-29T14:48:27.290 回答
1

以下应该有效:

driver.findElement(By.className("buttonLargeAlt")).click();
driver.findElement(By.xpath("//button[contains(@class='buttonLargeAlt')]")).click();
driver.findElement(By.xpath("//button[@class='buttonLargeAlt']")).click();
于 2012-08-29T12:26:34.750 回答
1
    You can achieve this by using XPath with html input element id or by name
    //1. By XPath indexing option:  
    WebElement loginButtonId = 
    driver.findElement(By.xpath("//*[@id='login']"));
    //Xpath of login button i have get For firefox browser

    loginButtonId.click();

    I hope this work for you
于 2018-06-01T12:48:48.230 回答
0

我有添加附件按钮:

我试过这段代码:

driver.findElement(By.xpath("//*[@id=\"attachments\"]/div/div/img")).sendKeys("C:\\Users\\NayazPasha\\Desktop\\Ndin selenium Testing outputs\\Collab Schedule onclick.png");
于 2020-09-15T11:24:05.510 回答
-1

该 XPath 只会获得跨度,而不是物理按钮。

在这里工作得很好:

//span[contains(.,'Checkout')]/button

或 By.CssSelector:

button.buttonLargeAlt

如果仍然不起作用,请解释更多。它在 iFrame 中吗?Selenium 给出了什么错误?

于 2012-08-29T11:58:21.023 回答