driver.findElement()
によってすべての要素にアクセスできました。 dhtmlxライブラリを使用してツリー要素が作成されました。その要素に到達しようとするとNoSuchElementExceptionが発生します。Selenium dhtmlxtree ChromeのNoSuchElementException Java
私はid、xpath、クラス、テキストなどで到達しようとしましたが、いずれも私のために働いていませんでした。暗黙の待機とThread.sleep()
メソッドを試しましたが、結果は同じです。
> <tr> <td class="standartTreeImage"> <img border="0" align="absmiddle"
> style="padding: 0px; margin: 0px; width: 18px; height: 18px;"
> src="http://marduk:5543/atlas/themes/third_party/dhtmlx/dhtmlxTree/codebase/imgs/vse_datasources/plus3.gif">
> </td> <td width="20px" style="display: none;"> <img align="absmiddle"
> src="http://marduk:5543/atlas/themes/third_party/dhtmlx/dhtmlxTree/codebase/imgs/vse_datasources/iconUncheckAll.gif"
> style="width: 16px; height: 16px;"> </td> <td
> class="standartTreeImage" style="width: 18px;"> <img border="0"
> align="absmiddle" style="padding: 0px; margin: 0px; width: 18px;
> height: 18px;"
> src="http://marduk:5543/atlas/themes/third_party/dhtmlx/dhtmlxTree/codebase/imgs/vse_datasources/folderClosed.gif">
> </td> <td class="standartTreeRow" nowrap="" style="width: 100%;
> font-size: 10pt; cursor: pointer;"> <span class="standartTreeRow"
> style="padding-left: 5px; padding-right: 5px;">hr-istanbul [15]</span>
> </td> </tr>
たとえば、次のようなものがあります。最初にtd
をクリックする必要があります。ロケータだけがイメージですが、要素にアクセスできません。NoSuchElementException。
element = driver.findElement(By.xpath("//img[contains(@src,'http://marduk:5543/atlas/themes/third_party/dhtmlx/dhtmlxTree/codebase/imgs/vse_datasources/plus3.gif')]"));
また、最後の列要素にも到達しようとしましたが、いずれも機能しませんでした。
element = driver.findElement(By.xpath("//*[contains(text(), 'hr-istanbul [15]')]"));
同じIDを持つ複数の要素があることができます - :?もしそうであれば、あなたは以下のように要素を見つける前
frame
またはiframe
がいることを切り替える必要がありますか – user2761286あなたのhtmlとjavaコードを共有します – Ab123
それらのいくつかはどんなidも含んでいませんが、それらを見つけるためにユニークなテキストフィールド等を持っています。私が言ったように私は共有することはできません、彼らの一部を共有しようとします –