0
我有一個腳本可以與網頁交互,上傳文件,提交文件並下載響應。最近,控制該網站的一方對此做出了某種改變。我正在嘗試適應變化,但我有一個難點。我使用java和selenium來打開Chrome瀏覽器。該頁面打開。過去有三個按鈕 - 重置按鈕,上傳按鈕和選擇文件按鈕。這仍然是當時的一部分。有條件的自動化網絡互動
但是,有時當站點打開時,只有前2個按鈕在那裏。我發現,如果我手動點擊上傳按鈕,頁面刷新並出現選擇文件按鈕。我現在正在嘗試將其納入我的代碼中。這裏的問題位...
driver.get("http://apps.gdgps.net/apps_file_upload.php");
System.out.println("test a");
if (driver.findElement(By.cssSelector("input[class*='upfile_ultimo']"))!= null){
System.out.println("test a - passed");
driver.findElement(By.cssSelector("input[class*='upfile_ultimo']")).click();
}else{
System.out.println("test a - failed");
driver.findElement(By.cssSelector("input[id='upload_button']")).click();
driver.findElement(By.cssSelector("input[class*='upfile_ultimo']")).click();
}
因此,我得到「測試a」打印所有的時間。如果選擇文件按鈕存在,我會看到「測試通過」並上傳文件。如果按鈕不存在,我不會看到「測試 - 失敗」,並且所有內容都會掛起。上傳按鈕從不按下。
我不知道爲什麼這不起作用。我通過移動if語句上方的upload_button行來進行實驗。它獨立運行。放入if語句時會有什麼不同?
謝謝。你的代碼比我的更優雅。不過,它在失敗時仍然不會點擊上傳按鈕。儘管如此,傳球依然奏效。順便說一句,它從不打印「測試 - 失敗」。這是否意味着它不會爲if語句找到否定的結果,而只會認可肯定的結論? – Iakona
在你最近運行這個代碼的時候,按鈕總是在那裏。您可能需要添加一個等待,具體取決於頁面等。 – JeffC
我已經等了30分鐘。它不會出錯。它只是掛在那裏,直到我手動點擊上傳按鈕。然後它繼續前進。 – Iakona