2017-08-05 10 views
0

テキストボックスからテキストを抽出することができませんパイソン/セレン - 私は、テキストボックスからテキストを抽出するために、次のPythonコードを使用しています

def check(): 
    with open("LP_input.txt") as f: 
     for line in f: 
      url = line.strip() 
      driver.get(url) 
      driver.wait = WebDriverWait(driver, 10) 
      time.sleep(10) 
      PC = driver.find_elements_by_xpath("//div[@id='wwctrl_landingPageDataForm_attributeMap_STRUCTURE_DATA_REQUIRED']") 
      for x in PC: 
       print(x) 

マイHTML(Webページ、私が抽出していますテキスト)

<div id="wwctrl_landingPageDataForm_attributeMap_STRUCTURE_DATA_REQUIRED" class="wwctrl"> 
<input id="landingPageDataForm_attributeMap_STRUCTURE_DATA_REQUIRED" class="text medium" name="attributeMap.STRUCTURE_DATA_REQUIRED" maxlength="1000" value="TRUE" style="" type="text" 

ただし、このエラーが発生しています。

<selenium.webdriver.remote.webelement.WebElement (session="9f5789eaeb8dbd5cc005dc63e3d4f9f2", element="0.6714808439487934-1")> 

実際には、テキストボックスにはTRUEまたはFALSEのいずれかが含まれます。これを数千ページ分抽出します。

+2

、それはセレン要素オブジェクトである、あなたの問題を解決するには、その要素からテキストを取得することである代わりに、ループ – Stack

+0

ため@Stackが.textの使用してみまし実行するので ')' PC.text(やります()はまだnを発行します解決OT ..今のプログラムはエラーを表示せずに閉じます..しかし、出力は受信されません..私はXPathが犯人であると思います。.. – Abdul

+0

がちょうど最後に余分な入力を追加し、スクリプトが正しく動作していると、端末だけで終わりですぐに閉じます。だから入力を追加することによって、それが – Stack

答えて

0

idlandingPageDataForm_attributeMap_STRUCTURE_DATA_REQUIREDとし、nameattributeMap.STRUCTURE_DATA_REQUIREDと見なすと、両方の属性が動的に生成されるようです。したがって、最初にすべてWebElementsを取得するには、xpathまたはcssという動的な構造を構築する必要があります。私たちは、次のようにTRUEFALSEのいずれかであるvalueフィールドの値をretriveするWebElementsListを横断し、その後ListWebElementsを格納する必要があります。

PC = driver.find_elements_by_xpath("//input[contains(@id, 'landingPageDataForm')][@class='text medium']") 
for x in PC: 
    text = x.getText(); 
    print(text) 
+0

が与えられたXPathを使用してみました私の答えをチェック与えられたxpathが間違っていることから、これは、他のテキストボックスを抽出します。.. – Abdul

+0

私をチェック'私の**がAnswer' **あなたの**' Question'に仕出し料理している場合は、更新回答 – DebanjanB

+0

@Abdul **することができます** 'Accept' ** **' ** 'Solution'としてAnswer' ** * *目盛りがグリーンに変わりので、私の 'Answer' **、ちょうど投票下記のアップ/ダウン**矢印の横にチェックマークをクリックして?おかげで – DebanjanB

0

私は余分な入力を追加した、にあなたのコードを変更します。エラーではありません

def check(): 
    with open("LP_input.txt") as f: 
     for line in f: 
      url = line.strip() 
      driver.get(url) 
      driver.wait = WebDriverWait(driver, 10) 
      time.sleep(10) 
      PC = driver.find_elements_by_xpath("//div[@id='wwctrl_landingPageDataForm_attributeMap_STRUCTURE_DATA_REQUIRED']") 
      for x in PC: 
       print(x.text()) 

      #Extra Input, to prevent the script from closing. 
      input("Press any key to exit!!") 
関連する問題