0

我编写了一个 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>

有没有人没有找到这些元素的有效方法?

4

2 回答 2

2

您可以通过其属性找到元素,例如 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();
于 2013-03-26T16:09:33.553 回答
0

您始终可以使用一种方法,BylinkText根据其 href="" 属性查找元素。

即(假设驱动程序已经启动)。

By doActionOneAnchor = By.linkText("javascript:doaction('1')");
WebElement doActionOne = driver.findElement(doActionOne);

这就是您可以使用的 WebElement。如果由于某种原因您需要对图像本身采取行动,您可以随时执行以下操作:

WebElement imgDoActionOne = doActionOne.findElement(By.tagName("img"));

希望能帮助到你。

于 2013-03-26T11:56:13.713 回答