2013-05-14 45 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(".."));