2016-05-04 10 views
0

これは、クリックするボタンです。私は、Javaを使用してセレンのWebドライバにオートメーションスクリプトを書き込むことで、このボタンをチェックしたいと思います。Javaを使用してSelenium Webドライバのチェックボックスのスクリプトを書く方法

以下は、ボタンのコードです。

<label class="toggle" style="font-size:13px"> 
<input type="checkbox" name="checkbox-IsEFR" id="checkbox-IsEFR"> 
<i data-swchon-text="Yes" data-swchoff-text="No"></i>Is Enable for Rules 
</label> 

私は自動化スクリプトの作成には初めてですので、助けてください。私はチェックボックスのスクリプトを書いたが動作していない。以下は、私のスクリプトとエラーが生成されました。

@When("^clicks on enable for rules$") 
    public void clicks_on_enable_for_rules() throws Throwable { 
     driver.findElement(By.name("checkbox-IsEFR")).click(); 
    } 

私が受け取ったエラーです。

org.openqa.selenium.ElementNotVisibleExceptionは:209ミリ秒の情報をビルドします:バージョン:「2.53.0」、 リビジョン:要素は 現在可視ので、コマンド期間 またはタイムアウトと相互作用することはできませんではありません "システム:ホスト: 'DELL_I5'、IP: '192.168.1.33'、os.name: 'Windows 10'、os.arch: '、35ae25b'、時刻:'2016-03-15 17:00:58 'ドライバの情報: org.openqa.selenium.firefox.FirefoxDriver機能 [{applicationCacheEnabled = true、rotateatable = false、handlesAlerts = true、 、amd64 '、os.version:'10 .0'、java.version: '1.8.0_77' databaseEnabled = true、バージョン= 46.0、プラットフォーム= WINDOW S、 nativeEvents =偽、acceptSslCerts =真、webStorageEnabled =真、 はlocationContextEnabled =真、browserName = Firefoxの、真 takesScreenshot =、javascriptEnabled =真、 はcssSelectorsEnabled = TRUE}]セッションID: 03695ef8-bd24-49d6-b8a1 java.lang.reflectでの sun.reflect.DelegatingConstructorAccessorImpl.newInstanceでsun.reflect.NativeConstructorAccessorImpl.newInstanceで sun.reflect.NativeConstructorAccessorImpl.newInstance0(ネイティブメソッド) (不明 出典)(不明 出典)で-6687e3d0375c。コンストラクタ.newInstance(不明な ソース)at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206) でorg.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158) でorg.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678) org.openqa.seleniumで mCollector.features.StepDefinitions_mCollector.clicks_on_enable_for_rules(StepDefinitions_mCollector.java:61で.remote.RemoteWebElement.execute(RemoteWebElement.java:327) でorg.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:85) ) をクリックしてルールを有効にします(C:/ Users/Admin/workspace/MStudio - eBilling/src/mCollector/features/mCollector.feature:12)原因:org.openqa.selenium.ElementNotVis ibleException:要素が現在表示されていないため、 が表示されないため、ビルド情報と対話できない可能性があります。 バージョン: '2.53.0'、改訂: '35ae25b'、時刻: '2016-03-15 17:00:58'
システムインフォメーション:ホスト: 'DELL_I5'、IP: '192.168.1.33'、os.name: 'Windows 10'、os.arch: 'amd64'、os.version:'10 .0 '、java.version:' 1.8.0_77 '
ドライバ情報:driver.version:.fxdriver.preconditions.visibleで不明(ファイル:/// C:/Users/Admin/AppData/Local/Temp/anonymous546390466745105063webdriver-profile/extensions/[email protected]/components /command-processor.js:10092) at .DelayedCommand.prototype。checkPreconditions_(ファイル:/// C:/Users/Admin/AppData/Local/Temp/anonymous546390466745105063webdriver-profile/extensions/[email protected]/components/command-processor.js:12644) at .DelayedCommand.prototype.executeInternal_ /h(file:///C:/Users/Admin/AppData/Local/Temp/anonymous546390466745105063webdriver-profile/extensions/[email protected]/components/command-processor.js:12661) at .DelayedCommand.prototype。 executeInternal_(ファイル:/// C:/Users/Admin/AppData/Local/Temp/anonymous546390466745105063webdriver-profile/extensions/[email protected]/components/command-processor.js:12666) at .DelayedCommand.prototype.execute/<(ファイル:/// C:/Users/Admin/AppData/Local/Temp/anonymous546390466745105063webdriver-profile/extensions/[email protected]/components/command-processor.js:12608)

+0

トライdriver.findElement(By.Id( "チェックボックスを-IsEFR"))をクリックします(); – karthick23

+0

あなたは、driver.manage()。timeouts()。implicitWait(15、TimeUnit.SECONDS);のようなテストケースで暗黙の待機を追加しました。 –

答えて

1

あなたは要素がそれをクリックする前に表示されるようにするために

WebDriverWait wait = new WebDriverWait(driver, 10); 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("checkbox-IsEFR"))).click(); 

これは10秒まで待機しますチェックボックスが表示されるのを待つために、明示的な待機やExpectedConditionsを使用することができます。

+0

また、エラーが発生します。エラーは次のとおりです。 org.openqa.selenium.TimeoutException:By.idで見つかった要素の可視性を10秒後にタイムアウトしました:checkbox-IsEFR ビルドインフォメーション:バージョン: '2.53.0'、リビジョン: '35ae25b'、時間: '2016- 03-15 17:00:58 ' システム情報:ホスト:' DELL_I5 '、IP:' 192.168.1.33 '、os.name:' Windows 10 '、os.arch:' amd64 '、os.version:'10 .0 '、java.version:' 1.8.0_77 ' –

+0

@ChathurikaPrabodaniチェックボックスを覆うものはありますか? – Guy

+0

それは私には分かりません。あなたは何を求めているのか記述できますか?実際には、ボタンはどのパーツとも結合されていません。これは、ルールを有効にするかどうかのどちらかを使用して、yesまたはnoとしてルールを有効にします。 –

1

エラーは:「ElementNotVisibleExceptionは:要素が現在表示されていないので、と相互作用することはできません..」

複数のこのエラーを発生の理由が、最強の可能性はそれであるかもしれません。

要素がページに読み込まれておらず、コードがその要素をクリックしようとしています。これを処理するには、あなたのコードにwait文を入れることができます。暗黙の待機をdriver.manage().timeouts().implicitlyWait(5000L, TimeUnit.SECONDS);に入れてグローバルな待機を課すことができます。また、クリックアクティビティを実行する前に明示的なwait文を入れることもできます。

解決方法を試してください。問題が解決すると思います。 。

0

あなたが好きなものを使用して、セレンでXPathによる検索できます

driver.find_element_by_xpath(".//*[contains(text(), 'Is Enable for Rules')]").click()

関連する問題