在xml视图中使用Selenium 1.82 By.xpath会产生NoSuchElementException

时间:2018-05-04 11:31:13

标签: java selenium selenium-webdriver xpath webdriver

我使用了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日重新开始运行自动测试时,它失败了。

3 个答案:

答案 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);