簡體   English   中英

如何在使用帶有 Java 的 Selenium WebDriver 單擊網頁上的上傳按鈕時顯示的 Windows 資源管理器上單擊取消

[英]How to click on Cancel on a windows explorer that displays when a upload button is clicked on a web page using Selenium WebDriver with Java

我對使用 Java 的 Selenium WebDriver 很陌生。 工作門戶上有一個上傳按鈕。 當我單擊該按鈕時,將顯示 Windows 資源管理器以選擇文件。 此窗口上有打開和取消按鈕。 我想選擇取消按鈕。 因為它是 Windows 資源管理器,所以我無法檢查取消按鈕。 我們如何編寫取消按鈕的代碼。 提前致謝。

driver.get("https://my.indeed.com/resume?from=gnav-homepage&co=US&hl=en_US");

driver.manage().window().maximize();

Thread.sleep(3000);

driver.findElement(

By.xpath("//[@id='container']/div/div/div[2]/div/div/div[2]/div/div[1]/div/div[1]/button")).click();

問題截圖

我沒有 Java 編程技能。 我希望下面的 python 代碼易於翻譯。 在我看來,將 windows action 與 selenium 調用結合起來通常是不穩定的。

有一個名為“上傳簡歷按鈕”的隱藏元素,您可以更改屬性值以在 UI 上看到它,使用元素上的發送鍵方法上傳簡歷。

 from selenium.webdriver import Remote, DesiredCapabilities

 driver = Remote(desired_capabilities=DesiredCapabilities.CHROME)
 driver.get('https://my.indeed.com/resume?from=gnav-homepage&co=US&hl=en_US')

 driver.execute_script(
     "document.getElementById('upload-resume-button').setAttribute('class', '')"
 )

upload_your_resume = driver.find_element_by_id('upload-resume-button')
upload_your_resume.send_keys(r'C:\test\resume.docx')

上面的代碼在我的本地工作。

簡短的回答是你不能,但如果你想上傳本地文件,你可以在輸入字段上使用 send_keys,發送文件路徑。

這是一個 python 示例:

driver.find_element_by_id("IdOfInputTypeFile").send_keys(os.getcwd()+"/image.png")

您可以使用 Robot 類來模擬本機鍵盤和鼠標操作,以與基於窗口的彈出窗口進行交互。 關閉任何打開的窗口的快捷方式是:“Alt + Space + C”——關閉焦點窗口。

Robot rb = new Robot();
rb.keyPress(KeyEvent.VK_ALT); 
rb.keyPress(KeyEvent.VK_SPACE);
rb.keyPress(KeyEvent.VK_C);
rb.keyRelease(KeyEvent.VK_C);
rb.keyRelease(KeyEvent.VK_SPACE);
rb.keyRelease(KeyEvent.VK_ALT);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM