Interacting with pop-up boxes using selenium in python

前端 未结 2 2031
眼角桃花
眼角桃花 2021-02-06 18:12

I\'m trying to use the Selenium module in python to generate a text list from one website, save it in a directory, and browse to that text list on another site to submit it.

相关标签:
2条回答
  • 2021-02-06 18:28

    Extremely simple implementation using AutoIT.

    Below scripts and steps can hely you to click on 'Save>OK' on this window's pop-UP

    Step 1: Download AutoIT package/tool here AutoIt You may select ZIP format (extract it)

    Step 2: Open any text editor (say notepad) and copy below code and save with extension .au3
    (e.g file.au3)

    WinWait("[TITLE:Opening ; CLASS:MozillaDialogClass]","", 10)
    If WinExists("[TITLE:Opening ; CLASS:MozillaDialogClass]") Then
    WinActivate("[TITLE:Opening ; CLASS:MozillaDialogClass]")
    Send("{DOWN}")
    Sleep(20)
    Send("{TAB}")
    Sleep(20)
    Send("{TAB}")
    Sleep(20)
    Send("{ENTER}")
    EndIf
    

    Step 3: From extracted zip (Step 1) look for folder named: Aut2Exe and open it

    Step 4: Click Aut2exe_x64.exe if your OS is 64 bit otherwise click Aut2exe.exe

    Step 5: Browse/Locate file created in Step2. (file saved as extension .a3) AND Choose Destination (.exe/.a3x) and select .exe option (say file.exe) AND then Click convert

    Step 6: include this file.exe in your project folder and use it as per your requirement using below code (as it is in Eclipse):

    driver.dwonload().click(); // it can be something else as per your flow
    Runtime.getRuntime().exec("C:/*path_to_your_EXE_file(selected in step 6))*/file.exe");
    
    0 讨论(0)
  • 2021-02-06 18:47

    The popups you see are not regular popups that can be interacted with using switch_to. These popups are system dialogs and cannot be automated using selenium.

    Usually people avoid having these dialogs shown in the first place by tweaking browser preferences, e.g.:

    • downloading file using selenium
    • Access to file download dialog in Firefox
    • How to download a file using Selenium's WebDriver?

    For uploading, usually you can find the appropriate input element and send keys to it with a path to the file:

    • How to upload file ( picture ) with selenium, python
    • How to upload files into file inputs? (python-selenium docs)

    Let me know if your case cannot be solved by using the answers in the links I've attached.


    As for your first, "download file automatically" problem, you just need to set a correct content-type:

    profile.set_preference('browser.helperApps.neverAsk.saveToDisk', "application/xml,text/xml")
    

    Second problem fix (upload part):

    driver.find_element_by_name("input_product_list").send_keys(textpath)
    driver.find_element_by_name('include_sr').click()
    driver.find_element_by_id('submit').click()
    
    0 讨论(0)
提交回复
热议问题