簡體   English   中英

Selenium Python無法獲取元素

[英]Selenium Python cannot get elements

這是HTML代碼:

<i>
    <div id="Calendar">
    <div class="Title">booking</div>
    <div class="calendarHolder">
        <div class="month">
            <div class="left"></div>
            <span class="monthName">APRIL 2018</span>
            <div class="right"></div>
        </div>
    <div class="dayHolder">
        <div class="day holiday"><div class="dCell">SUN</div></div>
        <div class="day"><div class="dCell">MON</div></div>
        <div class="day"><div class="dCell">TUE</div></div>
        <div class="day"><div class="dCell">WED</div></div>
        <div class="day"><div class="dCell">THU</div></div>
        <div class="day"><div class="dCell">FRI</div></div>
        <div class="day last"><div class="dCell">SAT</div></div>
        <div class="clearboth"></div>                       
    </div>
    <div class="dateHolder">
        <div class="date"><div class="dCell">1</div></div>
        <div class="date"><div class="dCell">2</div></div>
        <div class="date"><div class="dCell">3</div></div>
        <div class="date"><div class="dCell">4</div></div>
        <div class="date"><div class="dCell">5</div></div>
        <div class="date"><div class="dCell">6</div></div>
        <div class="date last"><div class="dCell">7</div></div>
        <div class="date"><div class="dCell">8</div></div>
        <div class="date"><div class="dCell">9</div></div>
        <div class="date"><div class="dCell">10</div></div>
        <div class="date"><div class="dCell">11</div></div>
        <div class="date"><div class="dCell">12</div></div>
        <div class="date"><div class="dCell">13</div></div>
        <div class="date last"><div class="dCell">14</div></div>
        <div class="date time_day stin"><div class="dCell">15</div>
        <input type="hidden" name="pid" value="5000">
    </div>
    <div class="date"><div class="dCell">16</div></div>

    </div>
</i>

我需要單擊一個日歷,以單擊日歷以執行進一步的操作。

我實際上需要單擊的類名稱為“ date time_day stin”。

我只是簡單地嘗試了確切的Xpath以及以下內容,但它返回錯誤: 沒有這樣的元素:無法找到元素:{“ method”:“ class name”,“ selector”:“ date.time_night.stin”}

driver.find_element_by_class_name('date.time_day.stin').click()

它通過以下方式返回相同的錯誤:

日期= driver.find_element_by_css_selector(“ div#date.time_day.stin> div”)。文本打印(日期)

然后,我嘗試了不同的方法,例如是否可以獲取每個div的文本以找出問題所在。

在所有find_element試驗中,我唯一可以得到的是帶有“ dCell”類名稱的文本“ SUN”到“ SAT”,方法是:

lst = []
driver.find_elements_by_css_selector("div#startBookingBlock div.dCell")
for i in calendar:
    lst.append(i.text)
print (lst)

但是它仍然沒有按相同的類名返回其他日期。

我將其修改為以下內容,並返回“ []”:

lst = []
calendar = driver.find_elements_by_css_selector("div#dateHolder div.dCell")
for i in calendar:
    lst.append(i.text)
print (lst)

然后,我嘗試更具體地編寫如下:

calendar = driver.find_elements_by_xpath("//div[@id='startBookingBlock' and @class='dateHolder' and @class='date' and  @class='dCell']")
print (calendar)

但是,它仍然打印“ []”。

它似乎無法在“ dateHolder”類下得到任何東西,但是我無法弄清楚為什么會發生這種情況,有人可以建議嗎? 謝謝!

我認為您的HTML代碼已損壞-在輸入標記后缺少一個</input> ,在末尾缺少了兩個</div>

嘗試在此代碼上運行您的代碼(我剛剛添加了這三個代碼):

<div id="Calendar">
  <div class="Title">booking</div>
  <div class="calendarHolder">
    <div class="month">
      <div class="left"></div>
      <span class="monthName">APRIL 2018</span>
      <div class="right"></div>
    </div>
   <div class="dayHolder">
       <div class="day holiday"><div class="dCell">SUN</div></div>
       <div class="day"><div class="dCell">MON</div></div>
       <div class="day"><div class="dCell">TUE</div></div>
       <div class="day"><div class="dCell">WED</div></div>
       <div class="day"><div class="dCell">THU</div></div>
       <div class="day"><div class="dCell">FRI</div></div>
       <div class="day last"><div class="dCell">SAT</div></div>
       <div class="clearboth"></div>                       
   </div>
   <div class="dateHolder">
        <div class="date"><div class="dCell">1</div></div>
        <div class="date"><div class="dCell">2</div></div>
        <div class="date"><div class="dCell">3</div></div>
        <div class="date"><div class="dCell">4</div></div>
        <div class="date"><div class="dCell">5</div></div>
        <div class="date"><div class="dCell">6</div></div>
        <div class="date last"><div class="dCell">7</div></div>
        <div class="date"><div class="dCell">8</div></div>
        <div class="date"><div class="dCell">9</div></div>
        <div class="date"><div class="dCell">10</div></div>
        <div class="date"><div class="dCell">11</div></div>
        <div class="date"><div class="dCell">12</div></div>
        <div class="date"><div class="dCell">13</div></div>
        <div class="date last"><div class="dCell">14</div></div>
        <div class="date time_day stin"><div class="dCell">15</div>
        <input type="hidden" name="pid" value="5000"></input>
    </div>
    <div class="date"><div class="dCell">16</div></div>

  </div></div></div>

適用於我的XML(在在線XPath測試器中 )如下:

div[@id="Calendar"]/div[@class="calendarHolder"]/div[@class="dateHolder"]/div[@class="date time_day stin"]

這會給您想要的元素嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM