如何使用Selenium WebDriver在嵌套范围中查找元素?

时间:2017-10-24 08:43:38

标签: selenium-webdriver

我正在尝试点击跨度n6中的“新交易”链接,该链接是跨度n2的子元素。我能够达到n2,但它不能识别'n6'。 请帮助我是Selenium WebDriver的新手

这里我发布了html和我的代码。

  


交易      

新   贸易

     

贸易   资源管理器

我想点击新交易

HTML source code

我的代码直到'n2':

driver.switchTo().frame(driver.findElement(By.name("treeFrame")));

WebElement allFormChildElements = driver.findElement(By.name("the_form"));
allFormChildElements.findElement(By.linkText("Trading")).click();  

WebElement modalDialog = allFormChildElements.findElement(By.className("border"));
WebElement newmodalDialog = modalDialog.findElement(By.className("formScrollableMenuContent")); 
System.out.println(newmodalDialog.findElements(By.tagName("a")).size()); // ans 5 

WebElement newDialog= newmodalDialog.findElement(By.id("n2"));
System.out.println(newDialog.findElements(By.id("n3")).size()); // ans 0

2 个答案:

答案 0 :(得分:1)

使用图片我无法测试但是,如果您能够到达元素<span id="n2">,那么您可以使用以下xpath来单击带有“New Trade”文本的元素:< / p>

newDialog.findElement(By.xpath(".//span[@id='n6']/a[@name='A6' and text()='New Trade']")).click();

修改

如果id值发生变化,请尝试以这种方式:

newDialog.findElement(By.xpath(".//span/a[@name='A6' and text()='New Trade']")).click();

答案 1 :(得分:0)

请你试试下面的xpath

//a[contains(text(),"New Trade")]