使用selenium(python)上传文件,输入元素位于iframe中

时间:2019-05-18 13:11:08

标签: python python-3.x selenium selenium-webdriver selenium-chromedriver

这是外面的html

    <div class="container">
        <div class="header">
            <div id="logo"></div>
            <div class="feedback_wrap">
                <span id="rating-ask" style="display: inline-block;">
                    <span class="ext_text">Rate us</span>
                    <br>
                    <span class="stars">
                        <a class="star" data-pos="1">
                            <span class="empty" style="display: inline;"></span>
                            <span class="filled" style="display: none;"></span>
                        </a>
                         <a class="star" data-pos="2">
                           <span class="empty" style="display: inline;"></span>
                            <span class="filled" style="display: none;"></span>
                        </a>
                         <a class="star" data-pos="3">
                            <span class="empty" style="display: inline;"></span>
                            <span class="filled" style="display: none;"></span>
                        </a>
                         <a class="star" data-pos="4">
                           <span class="empty" style="display: inline;"></span>
                            <span class="filled" style="display: none;"></span>
                        </a>
                         <a class="star" data-pos="5">
                            <span class="empty" style="display: inline;"></span>
                            <span class="filled" style="display: none;"></span>
                        </a>
                    </span>
                </span>
            </div>
            <div class="device_toggler_wrap">
                <div class="device_toggler_wrap2">
                    <span class="phone_icon"></span>
                    <div class="device_toggler">
                        <label class="switch">
                            <input type="checkbox" id="deviceswitch">
                            <span class="slider round"></span>
                        </label>
                    </div>
                    <span class="tablet_icon"></span>
                </div>
            </div>
            <div class="device_color_switcher">
                <div class="device_color_switcher_row">
                    <div class="color color_1" data-color="#FDD8D5"></div>
                    <div class="color color_2" data-color="#F1D9BF"></div>
                    <div class="color color_3" data-color="#E6E7E9"></div>
                </div>
                <div class="device_color_switcher_row">
                    <div class="color color_4" data-color="#35383D"></div>
                    <div class="color color_5" data-color="#000000"></div>
                    <div class="color color_6" data-color="#873239"></div>
                </div>
                <div class="device_color_switcher_row">
                    <div class="color color_7" data-color="#54E9DD"></div>
                    <div class="color color_8" data-color="#28B3D4"></div>
                    <div class="color color_9" data-color="#A7A7A7"></div>
                </div>
            </div>
        </div>
        <div class="phone_wrap">
            <div class="phone" style="border-color: rgb(230, 231, 233); width: 340px; max-height: 650px; border-width: 28px 7px 50px;">
                <div class="arrow_left">
                    <span class="ext_icon"></span>
                </div>
                <div class="arrow_right">
                    <span class="ext_icon"></span>
                </div>
                <div class="label">
                    <span class="text" style="color: rgb(0, 0, 0);"></span>
                </div>
                <div class="insta_loading" style="display: none;">
                    <i class="icon"></i>
                    <span class="text">Loading...</span>
                </div>
                <div id="iframe_wrap" style="width: 340px; opacity: 1;"><iframe frameborder="0"></iframe></div>
                <div class="circle"></div>
            </div>
        </div>
    </div>

以下是内部iframe: https://gist.github.com/ishandutta2007/67c1698b34e58634b9a855051b67fdfd

这是我的努力:

iframe = browser.find_element_by_tag_name("iframe")
browser.switch_to.frame(iframe)

try:
    browser.find_element_by_css_selector("form > input").send_keys("/my/path/to/sample.jpg")
except Exception as e:
    print(e)

没有引发异常,但也没有任何反应

0 个答案:

没有答案