Python Selenium图片上传chromedri

2024-05-19 22:46:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过pythonselenium上传图片,它以前是有效的,但现在它们随机生成button的ID。我尝试过使用不同的css路径,xpath来让它工作,但是我没有其他的想法。在

HTML格式

<div id="ImageUpload" class="form-section" style="position: relative;">
            <div class="file-input-wrapper">
                <button id="ImageUploadButton" type="button" class="button-update-cancel short file-upload-button ">
                            Select Images</button>
                        <input type="hidden" name="file" id="FileUploadInput">
                    <span class="field-message" data-for="FileUploadInput"></span>

                <p class="message"><strong>Get at least twice the number of replies by uploading images</strong><br>Max 10 images. File size can be 15 MB per image with max dimension 6000x4000. For bitmap(.bmp) images, max file size is 4MB.</p>

                <p class="file-input-current file-uploading">Uploading...</p>
                <ol id="UploadingImages"></ol>

                <p class="image-select">Select a "MAIN" image :</p>
                <ol id="UploadedImages">
                    </ol>
            </div>
            <input type="hidden" name="images">
            <div id="flash_19b01203e1o5npfd1nulhk11f293_container" class="moxie-shim moxie-shim-flash" style="position: absolute; top: 5px; left: 0px; width: 99px; height: 21px; overflow: hidden;"><object id="flash_19b01203e1o5npfd1nulhk11f293" type="application/x-shockwave-flash" data="Moxie.cdn.swf" width="100%" height="100%" style="outline:0"><param name="movie" value="Moxie.cdn.swf"><param name="flashvars" value="uid=flash_19b01203e1o5npfd1nulhk11f293&amp;target=moxie.core.EventTarget.instance.dispatchEvent"><param name="wmode" value="transparent"><param name="allowscriptaccess" value="always"></object></div></div>
            <object id="flash_19b01203e1o5npfd1nulhk11f293" type="application/x-shockwave-flash" data="Moxie.cdn.swf" width="100%" height="100%" style="outline:0"><param name="movie" value="Moxie.cdn.swf"><param name="flashvars" value="uid=flash_19b01203e1o5npfd1nulhk11f293&amp;target=moxie.core.EventTarget.instance.dispatchEvent"><param name="wmode" value="transparent"><param name="allowscriptaccess" value="always"></object>

以及python代码

^{pr2}$

有什么建议吗?在


Tags: namedividinputparamvaluestyletype
1条回答
网友
1楼 · 发布于 2024-05-19 22:46:41

如果id总是在变化,请寻找另一种标识元素的方法。在

元素总是<div id="ImageUpload"元素中的第一个flash对象吗?如果是的话,试试这个:

browser.find_element_by_xpath("//div[@id='ImageUpload']//object[@type='application/x-shockwave-flash']").click()

相关问题 更多 >