單擊按鈕后,我正在嘗試在彈出的視窗中上傳檔案:

單擊該按鈕后,彈出如下所示:

我使用以下方法單擊該按鈕:
driver.findElement(By.xpath("//*[@id=\"div-add-file\"]/a")).click();
然后,我使用了這個:
driver.switchTo().activeElement().sendKeys("C:\\Users\\Steve\\Downloads\\01004185FCA003900517097.pdf");
那沒起效。
我試圖做類似的事情,避免點擊按鈕但發送檔案路徑:
driver.findElement(By.xpath("//*[@id=\"div-add-file\"]/a")).sendKeys("C:\\Users\\Maxi\\Downloads\\01004185FCA003900517097.pdf");
但它不會作業。
我做錯什么了嗎?
uj5u.com熱心網友回復:
使用 Selenium 上傳檔案是通過將上傳檔案的路徑發送到頁面上的特殊元素來完成的。此元素通常可以通過此 XPath 定位://input[@type='file']
因此您的命令可能類似于以下內容:
driver.findElement(By.xpath("//input[@type='file']")).sendKeys("C:\\Users\\Maxi\\Downloads\\01004185FCA003900517097.pdf");
也許您需要添加一些延遲來加載頁面。如果是這樣WebDriverWait應該使用。
WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds);
wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//input[@type='file']"))).sendKeys("C:\\Users\\Maxi\\Downloads\\01004185FCA003900517097.pdf");
有時,與上述定位器匹配的多于 1 個輸入將在同一頁面上,有時將沒有這樣的元素。
如果有超過 1 個元素與上述定位器匹配,我們將需要找到精確、唯一的定位器。
如果沒有這樣的元素,我們將不得不找到另一種上傳檔案的方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/512225.html
上一篇:查找GOT父元素的子元素
