2014-01-25 25 views
1

使用硒webdriver我面臨的問題找到具有內部文字的兒童的街區。檢查整個街區是否有任何內部文字的孩子

<div class="chat_dialog"> 
<div class="chat_message"> 
    <span class="chat_timestamp" style="display: none;">[14:55:24]</span> 
    <span class="sender persona online">zajac</span></div> 
</div> 
<div class="chat_message"> 
    <span class="chat_timestamp" style="display: none;">[14:55:25]</span> 
    <span class="sender persona online">othername</span></div> 
</div> 
</div> 

我需要類選擇塊.chat_dialog具有扎亞茨的.text

driver.find_element_by_css_selector( 'chat_dialog')不工作,我懷疑。我知道我可以找到類發件人所有元素,但我需要其他方式! 可能是我可以用xpath或css選擇器做到這一點?

回答

1

使用Webdriver.find_element_by_xpath有以下XPath表達式:

xpath = './/div[@class="chat_dialog"][descendant::text()="zajac"]' 
element = driver.find_element_by_xpath(xpath) 

[descendant::text()="zajac"]將篩選後代元素,它的文本是zajac

+0

謝謝,它的工作原理)以及我如何檢查 - 如果** chat_dialog **有我的文本或沒有? '如果len(driver.find_elements_by_xpath('.// div [@ class =「chat_dialog_content」] [descendant :: text()=''+ driver.find_element_by_css_selector('#chat_page_header_user div div.friendslist_entry_content span.linkFriend')。 +'「]'))!= 0:'不工作(..我需要檢查頁面是否有這個文本塊或者沒有這個文本塊 –

+0

@RomaPerfilyev,很難閱讀評論中的代碼。與代碼分離的問題。 – falsetru

相關問題