This article mainly introduces the file upload function implemented by python+selenium+autoit. Friends who need it can refer to it
Question
When automating the UI layer on the web side, you will encounter file upload operations. Friends often ask, here is a summary
Solution
The first type: Upload files of type=file, similar to the following
Use code similar to this to complete:
driver.find_element('name','file').send_keys('./小强测试品牌.png')
The second type: except for the first type, it is more troublesome to implement. Autoit is used here. The general steps are as follows:
1. Download and install autoit, and then you can see it in the start menu. Go to the following
AutoIt Windows Info is used to identify Windows control information
Compile Script to.exe is used to generate an exe execution file from AutoIt
Run Script is used to execute AutoIt scripts
SciTE Script Editor is used to write AutoIt scripts
2. The upload function is as follows
3. The identification elements, mainly the file name input box and the open button in the picture above, are completed using AutoIt Windows Info. The recording results are as follows:
The class of the file name input box is "Edit" and the Instance is "1"
The class of the open button is "Button" and the Instance is "1"
4. Write a script using SciTE Script Editor. The content is as follows:
ControlFocus("文件上传", "","Edit1") WinWait("[CLASS:#32770]","",10) ControlSetText("文件上传", "", "Edit1","D:python_workspaceQiangSEAutopic小强测试品牌.jpg") Sleep(2000) ControlClick("文件上传", "","Button1");
In the above code, special attention should be paid to the word "File Upload" which is the title of the dialog box that pops up after you click the upload button. It may be different in each system
5. Verification script
Make sure the upload dialog box of the page is open, and then run the script tools>go
6. Open the Compile Script to.exe tool and generate it as an exe executable file
7. Call
up=self.driver.find_element('class name','avatar-uploader-trigger') up.find_element('class name','ant-btn').click() os.system('D:\python_workspace\QiangSEAuto\upload.exe') time.sleep(20)
Others
In fact, there are other solutions. If you are interested, you can research them yourself, such as You can use the following method:
Python pywin32 library to identify the dialog box handle, and then operate
SendKeys library
keybd_event to simulate keystrokes
Summarize
The above is the detailed content of Detailed graphic code explanation of how python, selenium and autoit implement the file upload function. For more information, please follow other related articles on the PHP Chinese website!