使用python硒单击ng点击按钮并上传文件



我对Python和Selenium非常新,但是我需要使用Selenium自动上传一些文件。

我必须单击一个按钮,它将弹出一个窗口,我可以在其中选择一个要上传的文件。
此按钮的HTML是:

<button class="md-button md-default-theme" ng-transclude="" ng-show="excelshow" ng-click="selectFile()" tabindex="0" aria-hidden="false" style=""><span class="ng-scope">
                Excel upload
            </span><div class="md-ripple-container" style=""></div></button>

我不知道如何使用硒单击此按钮并上传所选文件。
我尝试使用driver.find_element_by_class_name('md-button md-default-theme')driver.find_element_by_css_selector,但它不起作用。
我认为也许我以错误的方式使用了find_elements_by_css_selector

谢谢您的帮助!


编辑:

更完整的内容在这里:

<md-toolbar style="background-color: white !important" class="md-default-theme">
    <div class="md-toolbar-tools">
        <span>Manage Menu</span>
        <!-- fill up the space between left and right area -->
        <span flex=""></span>
        <!-- ngIf: isAuth --><div ng-if="isAuth" class="ng-scope">
            <input type="file" style="display:none" id="file" name="file" onchange="angular.element(this).scope().upexecl(this)">
            <button class="md-button md-default-theme" ng-transclude="" ng-click="DownLoadS()" tabindex="0"><span class="ng-scope">
                Download Example
            </span></button>
            <button class="md-button md-default-theme" ng-transclude="" ng-show="excelshow" ng-click="selectFile()" tabindex="0" aria-hidden="false" style=""><span class="ng-scope">
                Excel upload
            </span></button>
            <button class="md-button md-default-theme" ng-transclude="" ng-show="offering" ng-click="onlineSave()" tabindex="0" aria-hidden="false" style=""><span class="ng-binding ng-scope">
                Save online
            </span></button>
            <button class="md-button md-default-theme ng-hide" ng-transclude="" ng-click="CancelEditSave()" ng-show="editshow" tabindex="0" aria-hidden="true"><span class="ng-binding ng-scope">
                Cancel edit
            </span></button>
        </div><!-- end ngIf: isAuth -->
    </div>
</md-toolbar>

谢谢您的帮助!

md-button md-default-theme是2个类名称: md-button&amp;md-default-theme。.find_element_by_class_name((仅采用一个由单个类名称组成的参数,例如.find_element_by_class_name(" md-button"(。根据该类名称是否唯一找到所需的元素,这可能会或可能不会找到所需的元素。

另一个选项是使用CSS选择器,以便您可以在单个定位器中使用所有三个类,例如

driver.find_element_by_css_selector('md-button.md-default-theme')

在哪里。在CSS选择器语法中指示一个类名称。

希望它有帮助:(

最新更新