如何找到选择文件按钮的XPath?

时间:2018-04-11 09:33:53

标签: java selenium selenium-webdriver webdriver

我需要点击选择文件按钮。尝试过使用以下XPath:

driver.findElement(By.xpath("//div[@class='ant-modal-body']//button[contains(@class,'ant-btn-ghost')]/i")).click();

但上面的代码对我不起作用。

以下是按F12后得到的代码:

<button class="ant-btn ant-btn-ghost" type="button">
<i class="anticon anticon-upload"/>
<span> Select File </span>
</button>

2 个答案:

答案 0 :(得分:0)

正如您在评论中提到的,您通过Thread.sleep(2000)解决了所有最佳做法的问题。要单击带有文本的按钮选择文件,您必须引导 WebDriverWait ,您可以使用以下代码行:

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='ant-modal-body']//button[@class='ant-btn ant-btn-ghost']//span[contains(.,'Select File')]"))).click();

答案 1 :(得分:0)

首先尝试:

    driver.findElement(By.xpath("//span[contains(text(), 'SelectFile')]")).click();

如果不起作用,请尝试:

    WebElement composeBtn = driver.findElement(By.className("ant-btn ant-btn-ghost"));
    JavascriptExecutor executor = (JavascriptExecutor)driver;
    executor.executeScript("arguments[0].click();", composeBtn);