我写了一个Webdriver测试,当运行时,有时完成,有时不。
我不知道为什么,我猜是我验证页面加载的方式不可靠。
我通过等待元素"id/name/css"或页面上的文本来验证网站是否在正确的位置,但我可以找到一些元素:
<a href="javascript:doaction('1');">
<img src="images/english/go.gif" border="0" width="39" height="24"></a>
<a href="javascript:doaction('2');">
<img src="images/english/go.gif" border="0" width="39" height="24"></a>
<a href="javascript:doaction('3');">
<img src="images/english/go.gif" border="0" width="39" height="24"></a>
有谁没有找到这些元素的有效方法吗?
可以通过元素的属性(如href和src)找到该元素。
By link = By.cssSelector("a[href="javascript:doaction('1');"]"); // The quotes are escaped out because of the single quotes in the href. Normally I would just do like I did with src and use single quotes around the href
By src = By.cssSelector("img[src='images/english/go.gif']");
WebElement linkElement = driver.findElement(link);
linkElement.click();
WebElement srcElement = driver.findElement(src);
srcElement.click();
您总是可以使用By
的方法,即linkText
,根据它的href="属性查找元素。
。(假设驱动程序已经启动)。
By doActionOneAnchor = By.linkText("javascript:doaction('1')");
WebElement doActionOne = driver.findElement(doActionOne);
这是你将能够使用它的web元素。如果出于某种原因您需要对图像本身进行操作,您可以这样做:
WebElement imgDoActionOne = doActionOne.findElement(By.tagName("img"));
希望能有所帮助。