我试图从UI获取值,使用(By.id)locator.getAtrribute(" value"),
问题:
但是,当找不到xpath(UI上没有web元素)时,我需要将值取为' 00:00',但是我得到错误" No这样的元素& #34;
我需要添加一个检查,以便在UI上找到webelement,如果为true,则使用getattribute获取值(" value"),否则返回值为' 00:00&# 39;
但是当使用If条件时,"(WebelementforUIvalue.isEmpty()"返回' 00'虽然Web元素存在于UI上。(我需要取00) :00,当UI上没有找到/存在元素时
String WebelementforUIvalue = driver.findElement(By.id("ctl00_MainContent_AllowanceGridView_SRow"+cellRosterPerioddd+cellRosterPeriodmm+"_"+PayBucket)).getAttribute("value");
if (WebelementforUIvalue.isEmpty()) {
UIValue = "00.00";
} else {
UIValue = WebelementforUIvalue;
}
System.out.println(UIValue);
答案 0 :(得分:2)
就个人而言,我个人会使用try / catch块。
try {
String WebelementforUIvalue = driver.findElement(By.id("ctl00_MainContent_AllowanceGridView_SRow"+cellRosterPerioddd+cellRosterPeriodmm+"_"+PayBucket)).getAttribute("value");
UIValue = WebelementforUIvalue;
}
catch (NoSuchElementException) {
UIValue ="00.00";
}
答案 1 :(得分:1)
请尝试这样( Java代码)。 :
try{
WebElement element = new WebDriverWait(driver,20).until(ExpectedConditions.presenceOfElementLocated(By.id("ctl00_MainContent_AllowanceGridView_SRow"+cellRosterPerioddd+cellRosterPeriodmm+"_"+PayBucket));
UIValue = element.getAttribute("value");
}catch(Throwable e){
UIValue = "00.00";
}
System.out.println(UIValue);
我已经给出了20秒的显式超时。因此,硒会在20秒内尝试检测元素的存在。如果它没有找到,那么它将超时并发送分配" UIValue"至" 00.00"或者,如果它找到了元素,它将分配"值"属性" UIValue"。
答案 2 :(得分:0)
你可以这样试试......
String WebelementforUIvalue = null;
try{
WebelementforUIvalue = driver.findElement(By.id("ctl00_MainContent_AllowanceGridView_SRow"+cellRosterPerioddd+cellRosterPeriodmm+"_"+PayBucket)).getAttribute("value");
} catch(NoSuchElementException nsee) {
WebelementforUIvalue = "0.0";
}
System.out.println(WebelementforUIvalue);
答案 3 :(得分:0)
您可以使用“findElements”(最后的观察者')以更好的方式处理此问题。 findElements返回与定位条件匹配的元素列表。
List<WebElements> list=driver.findElements(By.id("Your criteria"))
Integer intNoValues=list.size();
if(intNoValues=0)
{
UIValue = "00.00";
}
else
{
UIValue = WebelementforUIvalue;
}
如果您想详细了解findElements,可以观看以下视频 How to find element which doesnt exist using WebDriver