在selenium中,如何在不使用XPath的情况下访问具有相同类名的第二个图像元素?

时间:2016-12-23 10:55:43

标签: c# image selenium testing xpath

我正在制作一些可重用的方法来定位页面中的图像元素。我无法通过XPath找到,因为XPath在每个页面上都会有所不同。最好,我希望能够通过src访问它们,但不确定这是否可行。 C#。下面的代码显示了两个图像元素。我正试图访问第二个。

<span id="tube">        <img class="mode-icon" title="Train: Tube" height="42" alt="Tube" src="/images/Tube.png">  </span>

<span id="Overground">  <img class="mode-icon" title="Train: Overground" height="42" alt="Overground" src="/images/Overground.png"> </span>

2 个答案:

答案 0 :(得分:0)

首先,您应区分绝对 XPath(已修复,例如html/div/div/.../div/img)和相对 XPath(灵活,例如//div/img[@id="some_img_id"])。良好的亲戚XPath可以匹配多个页面上的必需元素

如果您希望将目标imgsrc属性值匹配,则可以使用以下XPath

string imgSrc = "/images/Overground.png";
string imgXpath = String.Format("//img[@src = {0}]", imgSrc);

相同XPath表达式,您可以将其用于imgSrc

的任何值

答案 1 :(得分:0)

如果您想使用src属性访问

使用CSSSelector -

img[src='/images/Overground.png']

使用XPath

//img[@src='/images/Overground.png']

如果修复了你的页面中只有2个图像标记,那么你也可以使用索引 -

//span[2]/img