我使用了sapui5和xml视图以及java项目,使用Selenium 1.82进行自动化测试。当我使用By.xpath时,发生了NoSuchElementException。我试过By.xpath(“// * [text()[contains(。,'”+父母+“')]]”和By.xpath(“// * contains(@ text,'”+父母+) “'))”),同样的例外发生了。 我应该怎么做?任何人给予建议将深表感谢。
Relation.view.xml
List<Map<String,A>> listm=new ArrayList<>();
Map<String,A> map=new HashMap<>();
A a1=new A();
a1.setAge("30");
a1.setName("Mani");
map.put("1", a1);
A a2 =new A();
a2.setAge("31");
a2.setName("sasi");
Map<String,A> map1=new HashMap<>();
map1.put("2", a2);
A a3=new A();
a3.setAge("31");
a3.setName("Naveen");
Map<String,A> map2=new HashMap<>();
map2.put("3", a3);
listm.add(map);
listm.add(map1);
listm.add(map2);
List<Map<String, A>> list = listH.stream()
.collect(Collectors.groupingBy(Function.identity(), LinkedHashMap::new, Collectors.counting()))
.entrySet()
.stream()
.filter(e -> e.getValue() == 1)
.map(Map.Entry::getKey)
.collect(Collectors.toList());
测试脚本(驱动程序已被实例化)
<Select id=”relationSelect” selectedKey=”{Page>relation}”>
<item>
<core:Item key=”1” text=”請選擇”/>
<core:Item key=”2” text=”父母”/>
<core:Item key=”3” text=”配偶”/>
</item>
</Select>
我也试过By.id(“relationSelect”),得到了同样的例外。 代码By.xpath(“// [* text()='”+“父母”+“']”);今年4月17日至3月26日期间工作。在一天(4月17日)之后,当我在5月2日重新开始运行自动测试时,它失败了。
答案 0 :(得分:0)
试试代码:
WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement e = wait.until(ExpectedConditions.elememtToBeClickable(driver.findElement(By.xpath(“//*[contains(text(),’”+ “父母” +”’]”)))));
e.click();
答案 1 :(得分:0)
要点击文字属性设置为父母的元素,您可以使用以下代码行:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//Select[@id='relationSelect']/item/core:Item[@key='2']"))).click();
答案 2 :(得分:0)
我已经通过使用隐式等待显式 等待来解决此问题。
driver.manage().timeouts.implicitlyWait(30, TimeUnit.SECONDS);