从 Python 中选择 AngularJS 应用程序中的下拉列表时,Selenium 出现异常
While Selecting dropdown in AngularJS application from Python Selenium got an exception
我想 select 从 Python Selenium 下拉到 AngularJS 应用程序,但在我的情况下,我有 <i class="dropdown icon"/>
而不是 <select>
当我试图使用 Select class 抛出异常 "Select only works on <select>
elements, not on <i>
"
那么你能解释一下我如何 select 下拉列表中的元素吗?
谢谢,
兰吉斯·加纳普拉姆
您不能在此处使用 select class,因为它不是您要定位的 <select>
。您要做的是针对 angular 下拉列表。
您将不得不为此编写自己的方法。可能首先单击下拉菜单元素并等待下拉菜单打开,然后单击您想要 select.
的元素
<div class="text">CS47L90</div>
<div class="menu transition hidden" tabindex="-1">
<!-- ngRepeat: item in items -->
<div class="item ng-binding ng-scope active selected" ng-repeat="item in items" data-value="1" style="">CS47L90</div>
<!-- end ngRepeat: item in items -->
<div class="item ng-binding ng-scope" ng-repeat="item in items" data-value="2">CS47L91</div>
<!-- end ngRepeat: item in items -->
<div class="item ng-binding ng-scope" ng-repeat="item in items" data-value="3">WM1840</div>
</div>
</div>
所以首先定位 div class="text">CS47L90</div>
,让 webdriver 等待打开列表,然后单击 <div class="item ng-binding ng-scope" ng-repeat="item in items" data-value="3">WM1840</div>
之类的项目
我想 select 从 Python Selenium 下拉到 AngularJS 应用程序,但在我的情况下,我有 <i class="dropdown icon"/>
而不是 <select>
当我试图使用 Select class 抛出异常 "Select only works on <select>
elements, not on <i>
"
那么你能解释一下我如何 select 下拉列表中的元素吗?
谢谢, 兰吉斯·加纳普拉姆
您不能在此处使用 select class,因为它不是您要定位的 <select>
。您要做的是针对 angular 下拉列表。
您将不得不为此编写自己的方法。可能首先单击下拉菜单元素并等待下拉菜单打开,然后单击您想要 select.
<div class="text">CS47L90</div>
<div class="menu transition hidden" tabindex="-1">
<!-- ngRepeat: item in items -->
<div class="item ng-binding ng-scope active selected" ng-repeat="item in items" data-value="1" style="">CS47L90</div>
<!-- end ngRepeat: item in items -->
<div class="item ng-binding ng-scope" ng-repeat="item in items" data-value="2">CS47L91</div>
<!-- end ngRepeat: item in items -->
<div class="item ng-binding ng-scope" ng-repeat="item in items" data-value="3">WM1840</div>
</div>
</div>
所以首先定位 div class="text">CS47L90</div>
,让 webdriver 等待打开列表,然后单击 <div class="item ng-binding ng-scope" ng-repeat="item in items" data-value="3">WM1840</div>