2013-05-14 75 views
0
<div class="field select-container invalid" data-tooltip="Error message." "name="birthDate"> 
<div class="stack-wrap gutter-col-wrap-1"> 
<div class="stack size1of3"> 
<div class="gutter-col-1"> 
    <div class="form-selectbox full-width"> 
    <select name="day"> 
     <option value="">Giorno</option> 
     <option value="01">1</option> 

当使用WebElement el = browser.switchTo()。activeElement()时,焦点位于“name”属性上。为了在屏幕上显示错误信息,需要找到“data-tooltip”的父代。请帮忙。如何获得webdriver中元素的父元素

+0

“焦点在”名称“属性”?你能澄清一下吗? “需要找到”data-tooltip“的父母”?你的意思是找到'data-tooltip'属性的div吗? –

+0

是的,确切的!需要使用'data-tooltip'属性来查找div。工具提示遍布整个页面。所以为了让当前的工具提示专注于特定的元素,我做了browser.switchTo()。activeElement(),然后当我做了el.getText()时,它给了我焦点上当前元素的文本。但是当焦点集中在“名称”属性之一时会出现这种情况。现在为了获得工具提示,我需要回溯。数据工具提示出现在很多有不同文本的地方。所以直接通过data-tooltip访问文本是不可能的。 – user2340124

回答

1

如果我理解正确的问题,你想找到从div.select-container的数据提示的文字<select name="day">'

这里是你如何做到这一点在Java中使用XPath的祖先选择器(未测试的代码):

WebElement selectDayContainer = driver.findElement(By.xpath("//select[@name='day']//ancestor::div[contains(@class, 'select-container')]")); 
String toolTip = selectDayContainer.getAttribute("data-tooltip"); 
+0

@ user2340124:对此有任何意见吗?它对你有用吗? –

1

可以使用下面的代码来找到子元素的父对象。

IWebElement parentElement = childElement.FindElement(By.XPath(".."));