我是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來查找這些元素。但是,它並沒有發揮作用,並且沒有顯示出這樣的ELEMENT例外。
這是我的代碼。
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代碼發佈到您的問題 –
對不起,由於我公司的規則,我無法在此發佈HTML代碼。但我可以給你一些關於這個佈局的相關信息,你可以問。 – DG4
是具有svg標籤的HTML嗎? –