2017-06-02 60 views
0

我是新來的Python,硒,需要如何做一些這方面的幫助:如何獲得動態搜索結果:Python的/硒

我尋找的網站上某些事情和搜索之後,結果是渲染是基於搜索動態的。我正在嘗試獲取結果集,但無法處理如何操作: 下面是代碼所包含的結果頁的一部分,我試圖獲取所有列表。我特別希望通過每個上市迭代,也希望得到各上市代碼(1111111111,1111111112 ....)

<div id="listingsParent"> 
     <div id="listings" class="visibleLayer"> 
     <div> 
      <div id="listing_1111111111"> 
      <div class="abc test">.......</div> 
      ---- 
      ---- 
     </div> 
      <div id="listing_1111111112"> 
      <div class="abc test1">.......</div> 
      ---- 
      ---- 
     </div> 
      <div id="listing_1111111113"> 
      <div class="abc test2">.......</div> 
      ---- 
      ---- 
     </div> 
      <div id="listing_1111111114"> 
      <div class="abc test3">.......</div> 
      ---- 
      ---- 
     </div>  

我用的代碼:

allListings = browser.find_elements_by_xpath(「//* [@ ID = '清單'] 「)
LisBegin = allListings.find_elements_by_xpath(」 // DIV [包含(文本(), 'listing_'] 「)

,然後試圖獲得屬性」 ID 「..... listing_1111111111 這不適合我。

感謝你的幫助

拉吉

回答

0

您可以通過XPath的achief,這一切具有包含listing_將匹配這個XPath

LisBegin = allListings.find_elements_by_xpath("//div[contains(@id, 'listing_')]") 

你可以看一下this一個ID的元素有關xpath的更多信息。

也看看locators in selenium有關不同定位器

我希望這將幫助你在你的工作,如果你有任何問題,請不要猶豫,問他們更多的信息。

0

觀察1:它必須是findelement而不是findelement。

allListings = browser.find_element_by_xpath("//*[@id='listings']") 

觀察2:使用ID而不是文本。

LisBegin = allListings.find_elements_by_xpath("//div[contains(@id, 'listing_')]") 

希望這可以幫助你。謝謝。

+0

謝謝你...一旦我得到「LisBegin」,我應該用什麼來獲取值'1111111111' – user3713721

+0

現在LisBegin包含所有列表_ ******節點..爲了獲取顯示的文本在java中我們使用getText。 String value = LisBegin.get(0).getText(); –