如何更改位置?

How to change the location?

我正在尝试使用 Python 中的 Selenium 将图片自动上传到 Instagram。在打开 fileDialogue 之前我是成功的,但我无法将目录更改为图像所在的位置。 returns AutoIt 无法检测到 ToolbarWindow32 的错误。

我的代码:

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")

看看在 _WD_SelectFiles 中是如何完成的:https://github.com/Danp2/au3WebDriver/blob/master/wd_helper.au3

您应该可以直接使用 python+selenium 执行相同的操作,而无需使用 AutoIt。

另请查看: https://github.com/Danp2/au3WebDriver/blob/master/wd_demo.au3

有一个例子是如何直接在 AutoIt 中用 WebDriver UDF 做同样的事情而不用打开任何 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