简体   繁体   中英

How to change the location?

I'm trying to automate image uploading to Instagram using Selenium in Python. I'm successful till opening the fileDialogue but I'm not able to change the directory to where the image is located. It returns an error that ToolbarWindow32 can't be detected by AutoIt.

My code:

ActionChains(browser).move_to_element(browser.find_element_by_xpath(
    "/html/body/div[8]/div[2]/div/div/div/div[2]/div[1]/div/div/div[2]/div/button")).click().perform()

handle = f"[CLASS:#32770; TITLE:Open]"

autoit.win_wait(handle, 60)

autoit.control_set_text(handle, "ToolbarWindow32", photopath) # This line give me the Error

autoit.control_set_text(handle, "Edit1", photopath)

autoit.control_click(handle, "Button1")

Take a look how this is done in _WD_SelectFiles with:https://github.com/Danp2/au3WebDriver/blob/master/wd_helper.au3

You should be able to do the same directly with python+selenium without using AutoIt.

Also take a look on: https://github.com/Danp2/au3WebDriver/blob/master/wd_demo.au3

There is example how directly in AutoIt it is possible to do the same with WebDriver UDF without opening any FileOpenDialog :

Func DemoUpload()
    ; REMARK This example uses PNG files created in DemoWindows

    ; navigate to "file storing" website
    _WD_Navigate($sSession, "https://www.htmlquick.com/reference/tags/input-file.html")

    ; select single file
    _WD_SelectFiles($sSession, $_WD_LOCATOR_ByXPath, "//section[@id='examples']//input[@name='uploadedfile']", @ScriptDir & "\Screen1.png")

    ; select two files at once
    _WD_SelectFiles($sSession, $_WD_LOCATOR_ByXPath, "//p[contains(text(),'Upload files:')]//input[@name='uploadedfiles[]']", @ScriptDir & "\Screen1.png" & @LF & @ScriptDir & "\Screen2.png")

    ; accept/start uploading
    Local $sElement = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, "//p[contains(text(),'Upload files:')]//input[2]")
    _WD_ElementAction($sSession, $sElement, 'click')
EndFunc   ;==>DemoUpload

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM