2017-01-21 9 views
-1

enter image description here以下は、ページのHTML、Xpathを取得する方法、またはJavaを使用して自動化する方法はありますか?実際には、この「続行」ボタンをクリックしてください。セレンのwebdriverでxpathを見つける方法

<regform-button> 
<button ng-disabled="activityIndicator" ng-click="validate()" type="button"> 
<div template="api-loader" ng-http-loader=""> 
<div class="http-loader__wrapper ng-hide" ng-show="showLoader" ng-include="template"> 
<span class="api-loader"></span> 
</div> 
</div> 
<ng-transclude> 
</button> 
</regform-button> 

答えて

1
driver.findElement(By.xpath("//regform-button/button")).click(); 
+0

DINT作品。同じページにとどまります。driver.findElement(By.xpath( "// regform-b​​utton/button"))click(); – sandy

+0

あなたはそれが 'continue'ボタンだと確信していますか? – eLRuLL

+0

はい。 Infactは、この登録フォームを以下のリンクで自動化しようとしています。 https://uk.match.com/unlogged/landing/2016/06/02/hpv-belowthefold-3steps-geo-psc-bowling?klid=6740 – sandy

1

あなたは右のボタンをクリックして、ポップアップで点検を選択し、Google Chromeを使用している場合。 htmlはデベロッパーツールフレームで開きます。開発者ツールフレーム内の要素を右クリックし、コピー上にカーソルを置き、copy xpathを選択します。

URLのフォームへのXPathは次のとおりです。

///@ div @ 1/div [2]/div/div [1]/form/regform-steps/ng-transclude/regform-ステップ[1]/NG-フォーム/ NG-transclude/regformボタン/ボタン

WebDriver driver = new ChromeDriver(); 
    driver.get("https://uk.match.com/unlogged/landing/2016/06/02/hpv-belowthefold-3steps-geo-psc-bowling?klid=6740"); 
    //fill in fields 
    WebElement element = driver.findElement(By.xpath("//*[@id=\"main-frame\"]/div[1]/div[2]/div/div[1]/div[1]/form/regform-steps/ng-transclude/regform-step[1]/ng-form/ng-transclude/regform-button/button")); 
    element.click(); 
+0

それは私の仕事や私の仕事です。それは同じページにとどまります。次のページの次のステップに進んでいます。 – sandy

+0

フィールドを手書きで記入しましたか?私はデバッガでコードを踏んで、手でフィールドを埋めました。ページは単にクリックのどこにも行きませんでしたか?検証エラーでページが返されましたか? – ProgrammersBlock

0

あなたがの前に現れるドロップダウンから必要な値が [続行]ボタンを選択したら、あなたは上をクリックすることができます次の文を使用してボタンを続行:

driver.findElement(By.xpath("//span[text()='Continue']")).click(); 
+0

これはChromeまたはFFブラウザ用ですか? – sandy

+0

ChromeとFirefoxの両方で動作するはずです。私はFirefoxを使ってそれをテストし、私のために働いた。 – Mahipal

1

のためのコンソールを開いてみてくださいGoogleのChromeと次のように入力: document.evaluate( "// regformボタン/ボタン"、文書、ヌル、XPathResult.FIRST_ORDERED_NODE_TYPE、ヌル).singleNodeValue.click()

それが動作する...あなたならばそれはです必要なフィールドを指定しました。また、必要なフィールドを設定した後、追加の負荷がかかる可能性があるため、必要なフィールドを指定してからしばらく待ってください(2秒)。

編集:コードはjavascriptです。私はちょうど以前の答えによって与えられたxpathをとり、それを使って要素をjsに配置しました。私は "// regform-b​​utton/button"がうまくいくはずだと言っています。

0

次のxpathは私のために働いていました。しかし、なぜ別のブラウザごとに違うのですか? Chromeの

`driver.findElement(By.xpath("//*[@id='main-frame']/div[1]/div[2]/div/div[1]/div[1]/form/regform-steps/ng-transclude/regform-step[1]/ng-form/ng-transclude/regform-button/button")).click()`; 

::Firefoxの場合

driver.findElement(By.xpath("//regform-button/button")).click();

関連する問題