2015-06-23 34 views
0

我在學習Selenium,並且在解決此問題時遇到了麻煩。我必須將以下鏈接https://www.oddset.de/de/annahmestelle/wettprogramm-kompakt中的所有遊戲投注存儲到數組中。從Selenium Web驅動程序中的網頁提取數據

我對HTML和Javascript沒有太多的想法。我怎樣才能將所有遊戲投注的Spiel-Nr plus字段存儲到數組中。

<div id="overview-3" class="accordion level-1"> 
    <div class="accordion-group"> 
    <div class="accordion-heading relative"> 
     <div id="overview-1-3" class="accordion-body in collapse"> 
     <div id="cont_3" class="accordion-inner"> 
      <div class="slv-prog-header"> 
      <div class="left-wrapper"> 
       <div class="middle-wrapper"> 
       <div class="right-wrapper"> 
        <div class="slv-h slv-t4"> 
        <div class="slv-h slv-t4"> 
         <div class="slv-h slv-t5"> 
         <div class="slv-h slv-t6"> 
         </div> 
         <div class="slv-h slv-t7"> 
          <span class="head">Spiel-Nr. PLUS</span 
         </div> 
         </div> 
        </div> 
+0

會更好地粘貼HTML作爲一個例子,而不是給一個鏈接到網站。就我而言,我無法閱讀鏈接網站上的任何內容,因爲它是......德語? – aholt

+0

請勿將代碼粘貼到評論中。編輯到你的答案。 – aholt

+0

是德國的。HTML代碼太大。我只想要在頁面最右角的「Spiel-Nr.PLUS」下的所有數字。是否有可能使用螢火蟲工具來查看HTML並引導我?謝謝 – user3035860

回答

0

好了,你可以給列元素的ID,以便更容易獲得

+0

有沒有列元素的ID和數據顯示在各個部分..如何去解決它? – user3035860

0

你可以用它來得到正確的WebElements的列表值:

List<WebElement> nrPlusElements = driver.findElements(By.cssSelector(".goToEventPage em:nth-of-type(2)")); 

則:

List<String> nrPlusStrings = new ArrayList<>(); 
for(WebElement nrPlusElem : nrPlusElements) 
{ 
    nrPlusStrings.add(nrPlusElem.getText()); 
} 

到一個數組:

String[] array = nrPlusStrings.toArray(new String[nrPlusStrings.size()]); 

將它們映射到正確的遊戲可能會有點困難,但那不是問題的問題。

+0

你是怎麼找到達的?你能解釋一下嗎?因爲我需要查找其他網頁中的元素列表。 – user3035860

+0

我使用了名爲SelectorGadget的Chrome擴展來縮小CSS選擇器的範圍,以選擇所有的值元素。那是,CSS選擇器的知識以及它們是如何工作的,這是一個額外的主題。 – aholt

+0

我不明白..例如,如何在此頁面中獲得標有「E」的字段「SPIEL」https://www.oddset.de/de/annahmestelle/wettprogramm-plus – user3035860

0

我會用這樣的XPath,它演示瞭如何使用「包含」和「開始,以」上的XPath:

String xpathText = 
".//div[starts-with(@id,'overview') and contains(@class,'accordion')]//*[@class='head']"; 
By locator = By.xpath(xpathText); 
List<WebElement> nrPlusElements = driver.findElements(locator); 
相關問題