2016-08-11 16 views
2

を使用してセクションを開くには、[展開]ボタンをクリックする方法ページの分類のチェックボックスのセクションを開く[展開]ボタンをクリックする際に問題があります。
webdriverは、[展開]ボタンをクリックする操作が完了していると思っているようですが、セクションは折りたたまれたままです。
以下 はHTMLの一部であるSelenium Webdriver C#

コードここ

metadata-editor name="resourceModelTaxonomyTypeIds" label-text="Type" matadata-fieldname="Type" resource-id="id" selected-ids="resourceModel.TaxonomyTypeIds" required class="ng-isolate-scope" 
<div class="form-group" ng-class="{'has-error': (required && form.$submitted && !isValid)}" 
    ::before 
    <div class="col-md-9"> 
    <!-- ngRepeat: node in loadSelectedNodes() --> 
    <br ng-show="loadSelectedNodes().length > 0" class="ng-hide" 
    <button type="button" class="btn btn-sm btn-info btn-expand-taxonomy ng-pristine ng-binding ng-invalid ng-invalid-valid ng-touched" name="resourceModelTaxonomyTypeIds" ng-model="selectedIds" ng-click="toggleView(isCollapsed)"><span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span> Expand</button> 

働いていない私の働きの一部されています

試み1:は、私はシンプルな.Clickを試してみました()アクション

driver.FindElement(By.Name("resourceModelTaxonomyTypeIds")).Click(); 

結果:Webdrive rはステップを通過しますが、画面上で何も起こっていませんが、Expandボタンはまだ折りたたまれており、オプションはまだ隠れています。

試み2:前と同じ、すべてがOKですが、それでも部分を拡大していないボタンを展開し、現実には考えてwebdriverを:私はMoveToElementアクションに

Actions clickExpand = new Actions(driver); 
clickExpand.MoveToElement(driver.FindElement(By.Name("resourceModelTaxonomyTypeIds"))).Click().Perform(); 

の検索結果を試してみました。

試み3:私は上記の試行1に試みとして(C#2に変換することによって)として何がコードすることを確認するために記録と再生を行うインストールセレンIDE、 セレンIDEは.Click()アクションとそれを記録します。

これは、この特定のボタンではうまくいかない理由に固執しています。誰かがこれに遭遇したか、これらのタイプの拡張ボタンを扱っていますか?

注:ボタンの動作を確認するためにクリックして手動で拡張ボタンをテストしましたが、webdriverは実行していないようです。

+0

あなたはクリックを実行するにはJavaScriptを使用してみましたか? ExecuteScriptコマンドを使用していますか? –

+0

'((IJavaScriptExecutor)ドライバ).ExecuteScript(" arguments [0] .click() "、driver.FindElement(By。 –

+0

名前を確認するために提供された名前が一意で、正しいボタンを探していることを確認してください。:) –

答えて

1

複数の参照は、あなたが実際にglyphionシェブロン後に行くとそれをクリックすると、アクションが...

driver.FindElement(
      By.CssSelector(
       ".glyphicon.glyphicon-chevron-right")).Click(); 

ときにボタンを実行し、ボタンを拡大し、このタイプの判明しますシェブロンが「右」の場合、シェブロンが「下」になっているため、理論的には複数の展開がある場合は、同じコードを繰り返してすべてを展開したり、親と賢く関連付けることができます両方とも動作します。あなたが必要な画面の面積を折りたたむにはクリックし

....

driver.FindElement(
       By.CssSelector(
        ".glyphicon.glyphicon-chevron-down")).Click(); 
0

要素がクリック可能になったのでしょうか? WebDriverWaitとExpected Conditionフラグを使用してみましたか?いくつかのサンプルコード。ここhttp://selenium-python.readthedocs.io/waits.html?highlight=webdriverwait

try: 
    more = WebDriverWait(self.driver, 10,poll_frequency=2,ignored_exceptions=[ElementNotVisibleException, ElementNotSelectableException]).until(EC.element_to_be_clickable((By.Name, 'resourceModelTaxonomyTypeIds'))) 
except TimeoutException: 
    break 

more.click()