2016-08-04 101 views
0

我正在嘗試訪問通用huffington文章中的評論文本框。當我右擊檢查元素,我得到了下面的HTML代碼:無法在硒中選擇文本框

<div class="UFIInputContainer"> 
<div class="_1cb _5yk1"> 
    <div class="_5yk2" tabindex="-2"> 
    <div class="_5rp7"> 

與突出顯示的行<div class="_1cb _5yk1">

from selenium import webdriver 
driver = webdriver.Chrome() 
''' 
Just pretend that I put in some code to log in to facebook 
so I can actually post a comment on huffington post 
''' 
driver.get.('http://www.huffingtonpost.com/entry/worst-suicide-squad-reviews_us_57a1e213e4b0693164c34744?') 
''' 
Just a random artical about a movie 
''' 
comment_box = driver.find_element_by_css_selector('._1cb._5yk1') 
''' 
since this is a compound class I think I should use find_by_css_selector 
''' 

當我運行這個雖然,我得到錯誤消息:「沒有找到這樣的元素」。我嘗試了其他方法試圖獲得評論文本框,但我得到了相同的錯誤消息,並且我正在迷失如何訪問它。我希望有人能夠解釋這個問題。

編輯:這是一個比較完整的HTML代碼:

<html lang="en" id="facebook" class="svg "> 
<head>...</head> 
    <body dir="ltr" class="plugin chrome webkit win x1 Locale_en_US"> 
    <div class="_li"> 
    <div class="pluginSkinLight pluginFontHelvetica"> 
    <div id="u_0_0"> 
     <div data-reactroot class="_56q9"> 
     <div class="_2pi8"> 
     <div class="_491z clearfix">...</div> 
     <div spacing="medium" class="_4uyl _1zz8 _2392 clearfix" direction="left"> 
      <div class="_ohe lfloat">...</div> 
      <div class> 
      <div class="UFIInputContainer"> 
      <div class="_1cb _5yk1"> 
      <div class="_5yk2" tabindex="-2"> 
       <div class="_5rp7"> 
      </div> 
      </div> 
      <div class="UFICommentAttachmentButtons clearfix">...</div> 
      <!-- react-empty: 39 --> 
      <div class="_4uym">...</div> 
      </div> 
      </div> 
     </div> 
     ::after 
+0

的HTML不會顯示有關複選框的任何東西,你可以分享幾行,你看'input'標籤。 –

+0

我查看了HTML代碼,在相鄰的代碼中找不到任何輸入標籤。 –

回答

0

你必須切換到包含文本框的iframe。試試下面的辦法,它應該工作: 點擊加載評論按鈕可能首先需要,如果負荷評論按鈕顯示

load_comment = driver.find_element_by_css_selector('.comment-button.js-comment-button') 
load_comment.click() 
driver.switch_to_frame(driver.find_element_by_css_selector('.fb_ltr.fb_iframe_widget_lift')) 
comment_box = driver.find_element_by_css_selector('._1cb._5yk1') 
comment_box.send_keys('Test') 
+0

謝謝。該代碼使我更接近。當我輸入命令:comment_box.click()它將光標帶到註釋框,但是當我發送命令:comment_box.send_keys('Test')時,我得到錯誤:無法聚焦元素。 –

+0

嘗試直接發送文本到沒有'.click()'的comment_box。 – Amit

+0

不幸的是,我仍然收到相同的錯誤信息。 –