2016-08-04 67 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

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