アプローチ: - すべてのIFrameを収集し、特定のxpathを見つけるために繰り返します。 が見つかった場合は、その要素をクリックします。セレンのリストweb要素の2番目のweb要素(アンカータグ)をクリックできません。
問題: - ネストされたIFrameにループしている間、私はxpathで要素を探していますが、要素を一意に識別できません。代わりに3つの要素を識別します。 私はそれをリストに入れています。そして、xpathが任意のフレームで識別されるとき、リストwebElementの2番目のリンク(アンカーリンク)をクリックしたいと思います。
リンクではクリックせず、「要素が表示されません」というエラーが表示されます。以下 は、私が使用していたコードである: - :
<td class="actionColumn">
<a class="actionLink" title="Edit - Record 1 - Test FEA case" onmousedown="searchResultClick.mousedown(this, event)" data-seclkr="1" data-seclkp="/5000v0000018Jgj/e" data-seclki="5000v0000018Jgj" data-seclkh="294f7f9698757809b8e22aba88fe090c" data-seclke="Case" href="javascript:srcUp(%27%2F5000v0000018Jgj%2Fe%3FsrPos%3D0%26srKp%3D500%26retURL%3D%252F_ui%252Fsearch%252Fui%252FUnifiedSearchResults%253FsearchType%253D2%2526sen%253D500%2526sen%253Da6L%2526sen%253Da6M%2526str%253D%252509%252B02309343*%2526isdtp%253Dvw%2526isWsVw%253Dtrue%2526isWsVw%253Dtrue%2526isWsVw%253Dtrue%2526nonce%253D1e0c5b181417fcc9ba9f5c87794ccaf8671265f86f9f82afbaa70ccb35599c53%2526sfdcIFrameOrigin%253Dhttps%25253A%25252F%25252Fmetlifeusdirectsales--ebsdev.cs66.my.salesforce.com%26isdtp%3Dvw%27);">Edit</a>
</td>
<th class=" dataCell cellCol1 " scope="row">
<a onmousedown="searchResultClick.mousedown(this, event)" data-seclkr="1" data-seclkp="/5000v0000018Jgj" data-seclki="5000v0000018Jgj" data-seclkh="294f7f9698757809b8e22aba88fe090c" data-seclke="Case" href="javascript:srcUp(%27%2F5000v0000018Jgj%3FsrPos%3D0%26srKp%3D500%26isdtp%3Dvw%27);">02309343</a>
</th>
<td class=" dataCell cellCol2 "/>
<td class=" dataCell cellCol3 "/>
<td class=" dataCell cellCol4 ">
<a onmousedown="searchResultClick.mousedown(this, event)" data-seclkr="1" data-seclkp="/5000v0000018Jgj" data-seclki="5000v0000018Jgj" data-seclkh="294f7f9698757809b8e22aba88fe090c" data-seclke="Case" href="javascript:srcUp(%27%2F5000v0000018Jgj%3FsrPos%3D0%26srKp%3D500%26isdtp%3Dvw%27);">Test FEA case</a>
</td>
私は第二のタグのリンクをクリックします - ここ
String xPath = ".//a[@data-seclkr='1']";//xpath of 3 identified webelement
Boolean iselementpresent = sfdc.GetWebDriver().findElements(By.xpath(xPath)).size()!= 0;
if (iselementpresent==true)
{
System.out.println("Yes element is present in nested for case Link");
List<WebElement> casedetails = sfdc.GetWebDriver().findElements(By.xpath(".//a[@data-seclkr='1']"));
casedetails.get(1).click();
break;
}
else{
System.out.println("No element is NOT present in nested for case Link");
}
はHTMLです。
助けてください..
おかげ
By.linkText( "....")で試してください、特定のリンクを取得します – Grasshopper
こんにちはグラスホッパー、テキストは動的に生成されています。 – Coolguy