如何从WebElement获取xpath
Webelement element= driver.findElement(By.xpath("//div//input[@name='q']"));
比如
element.getLocator(); ->> this should be like this "//div//input[@name='q']"
我已经创建了下面的方法并将xpath作为参数传递。我想创建相同的方法并将webElement作为参数传递:
public boolean isElementPresentAndVisible(String xpath){
if(driver.findElements(By.xpath(xpath)).size()!=0){
if(driver.findElement(By.xpath(xpath)).isDisplayed()){
System.out.println(xpath+" present and Visible");
return true;
}else{
System.err.println(xpath+" present but NOT Visible");
return false;
}
}else{
System.err.println(xpath+" NOT present");
return false;
}
}
3条答案
按热度按时间u0njafvf1#
通过id或name获取WebElement,然后调用方法generate generateXPATH()传递元素,它将返回Xpath。
iecba09b2#
没有方法来完成你所要求的,但是你也不需要它。你把它弄得比实际需要的更复杂。如果一个元素是可见的,它也是存在的,所以没有必要检查它是否存在。
不是将XPath作为字符串传递,而是传递一个
By
定位器。现在您可以使用任何您想要的定位器类型。我重写并简化了您的代码,然后编写了一个类似的函数,它接受一个WebElement
参数。iaqfqrcu3#
@shamsher Khan的答案的Python版本--它工作。