私はSeleniumとGWTの初心者ですが、SmartGWTライブラリが追加されたPaintのようなGWT Webアプリケーションをテストしようとしています。私は、すべてのブラウザと互換性のある単一の方法でウェブページの要素を探し出す際に問題が発生しました。私は要素を見つけるために多くの方法を試しましたが、どれも効果がありませんでした。まず、動作しなかったIDを使って要素の位置を特定しようとしました。それから、絶対的なXPathのメソッドを試しましたが、これは異なるブラウザ上のいくつかの要素では機能しませんでした。次に、相対XPathを使用してこれらの要素の配置を試みましたが、残念なことに、同じ問題が同じ方法で発生しました。次に、このリンクで指定されているようにscLocatorsを使用してこれらの要素を見つける別の方法を見つけました:Using Selenium in SmartGWT。Seleniumを使用してSmartGWTアプリケーション内の要素を見つけることができません
このリンクに記載されている手順を使用して、Selenium IDEでscLocatorsを生成できました。しかし、録音を止めた後、Selenium IDEでテストケース全体を演奏したとき、IDE自体は、クリックやテキストの作成などのさまざまな操作を行っていたときに生成した要素を見つけることができませんでした。
また、scLocatorsを使用して、JavaのSelenium WebDriverを使用してこれらの要素を検索しました。しかし再び、それはうまくいかず、そのような要素の例外も示されなかった。
これは私のコードです。
public class RelativeXpath {
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "D:\\SELENIUM\\Drivers\\chromedriver.exe");
SmartClientWebDriver driver = new SmartClientChromeDriver();
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
Thread.sleep(3000);
driver.get("xxxxxx"); //here I have given the URL of my web application
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.titleContains("XXXX")); // here I've given the title of my web application
wait.until(ExpectedConditions.elementToBeClickable(By.id("frontCanvas")));
Thread.sleep(4000);
WebElement Draw = driver.findElement(ByScLocator.scLocator("//HLayout[ID=\"long_ribbon_HLayout\"]/member[Class=IconMenuButton||index=1||length=20||classIndex=0||classLength=4||roleIndex=0||roleLength=15||scRole=button]/icon"));
Draw.click();
Thread.sleep(2000);
}
}
ここでは、画像+ボタン要素のHTMLコードをクリックします。
<div id="isc_C" eventproxy="isc_IconButton_Client_0" role="button" aria-label="XXXX" style="position: absolute; left: 80px; top: 0px; width: 42px; height: 42px; z-index: 200090; box-sizing: border-box; overflow: hidden; cursor: pointer;" onscroll="return isc_IconButton_Client_0.$lh()">
<div id="isc_D" eventproxy="isc_IconButton_Client_0" style="position: relative; display: inline-block; box-sizing: border-box; width: 100%; vertical-align: top; visibility: inherit; z-index: 200090; cursor: pointer;">
<table role="presentation" width="42" height="42" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="iconButton" style="padding: 4px; background-color: transparent;" valign="top" nowrap="true" align="center">
<img src="XXXX.png" style="vertical-align:middle;margin-bottom:5px;" eventpart="icon" suppress="TRUE" draggable="true" width="32" height="32" border="0" align="TEXTTOP">
<br>
</td>
</tr>
</tbody>
</table>
</div>
</div>
この問題を解決するにはどうすればよいですか?
HTMLのレイアウトとは何ですか? –
申し訳ありません私の会社のルールのため、ここにHTMLコードを掲載することはできません。しかし、私はあなたに聞くことができるそのレイアウトに関するいくつかの関連情報を与えることができます。 – DG4
は、svgタグを持つHTMLですか? –