2017-01-20 14 views
0

このボタンの選択にはいくつか問題があります。 id(08aa0e806e775dc4e84cc7b0fc4d7b41465ad69f)の部分は、Webサイトがリロードされるたびにランダムに生成されます。Angular random id、Selenium + Pythonからボタンクラスを選択する方法

アイデア?

<button class="btn-primary btn btn-sm " ng-attr-id="button_{{ button.label }}_{{ button.id }}" ng-if="!readOnlyForm || (showRedirectButtonsInReadOnly &amp;&amp; button.redirectAddress)" data-ng-disabled="walkInProgress || fullPage.$invalid" ng-repeat="button in processDetails.form.edgeButtons" ng-click="walk(button.edgeNumber, button.redirectAddress)" ng-bind-html="button.label | ecs_to_trusted" id="button_Wyślij zgłoszenie_08aa0e806e775dc4e84cc7b0fc4d7b41465ad69f">Wyślij zgłoszenie</button> 
+0

これは、クラス 'btn-primary btn btn-sm'を持つ唯一のボタンですか? – hansaplast

+0

このクラスには他のボタンはありません。 – RadekE

+0

ボタンのユニークな点は何ですか?テキスト(以下の答えで示唆されるように)? – hansaplast

答えて

2

テキスト値を使用して、それを選択しようとすることができます

driver.find_element_by_xpath('//button[text()="Wyślij zgłoszenie"]').click() 
+0

このソリューションは機能しました!どうもありがとうございました! – RadekE

0

このような状況では、典型的なアプローチは、コンテキスト内のボタンを探しCSSセレクタやXPathを構成することです。周囲のソースコードは提供していませんが、一意のクラスまたはIDを持つdiv内にあるかどうかを確認し、そこからパスを構築してください。 CSSセレクタは次のようになります:

div.unique_div_path button.btn-primary 
+0

ボタンはいくつかのdiv内にあり、角度クラスのみを持っています。 – RadekE

関連する問題