我正在使用Selenium搜索网页中的元素。我在type="number"
上使用包装器类和包装器方法,并使用xml将键传递给包装器。所以,这一点运作良好。最近,我不得不在不同的设置中找到许多具有类似className和不同xpath的元素。我尝试使用className创建自定义xpath,并尝试使用不同的特定属性来标识元素。页面结构类似于:
findElement()
我使用的xpath是:
<span class="app-icon">
<img class="app-icon-large" alt="WorkForce1" src="https://someWebAddress"/>
</span>
问题是,如果我用workXPATH = .//span[1]/img[@alt="Workforce1"]
之类的随机字替换Workforce1
zenith
方法仍然返回true。并且dom结构中不存在天顶。这让我抓狂了头。有谁知道为什么这种方式有效?
代码是:
isDisplayed()
答案 0 :(得分:0)
IsDisplayed()返回True
这是因为您的HTML源代码中找到了(XPath)。
所以有效 e.g。
WebElement Image = driver.findElement(By.xpath("//*[@id='registrationForm']/div[13]/span/img")); // here you need to find unique value for your xpath if that repeated in the source
所以: Image.get意味着什么
如果您需要从html属性
返回值Image.getAttribute("alt").equals("your expected results");
答案 1 :(得分:0)
试试这种方式。
说明:首先使用workForce1
属性获取alt
图片的字符串。
现在使用xpath
定位器查找WebElement。
然后使用if条件比较String
和WebElement
。
String workForce1_text = driver.findElement(By.xpath("//span/img[@alt='WorkForce1']")).getAttribute("alt");
System.out.println(workForce1_text);
WebElement element = driver.findElement(By.xpath("//span/img[@alt='WorkForce1']"));
if(element.getAttribute("alt").contentEquals(workForce1_text))
{
/*your action goes here.*/
}