我需要点击选择文件按钮。尝试过使用以下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>
答案 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);