使用Python Selenium检索XML表单

时间:2013-10-31 14:01:45

标签: python xml selenium selenium-webdriver

我将直截了当地追逐和追问:

首先,这是我的代码(非常简单):

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select, WebDriverWait
el = driver.find_element_by_id("id1")
el.clear()
el.send_keys("2147000001")
el = driver.find_element_by_id("id2")
el.click()
el = driver.find_element_by_id("id3")
el.click()
textbox = driver.find_element_by_id("id4")
asd = textbox.get_attribute("innerHTML")
print asd

我面临的问题是它什么都不打印。我用firebug检查了id4元素,它是这样的:

<textarea spellcheck="false" class="debug hint" id="id4" style="display: inline;">

&lt;?xml version="1.0"?&gt;


&lt;?xml version="1.0"?&gt;

org.oneandone.ipayment.fraud.wrappers.SimilarIpaymentIdsResponse {
  *ipaymentIds =&gt; org.oneandone.ipayment.fraud.IpaymentIds {
  ipaymentId =&gt; [
    0 =&gt; 80000000000
    1 =&gt; 2147000165
    2 =&gt; 2147000180
    3 =&gt; 2147000130
    4 =&gt; 2147000190
    5 =&gt; 2147000192
    6 =&gt; 2147000197
    7 =&gt; 2147000144
    8 =&gt; 2147000151
    9 =&gt; 2147000198
    10 =&gt; 2147000001
    11 =&gt; 2147000170
    12 =&gt; 2147000185
    13 =&gt; 2147000179
    14 =&gt; 2147000182
    15 =&gt; 2147000183
    16 =&gt; 2147000186
    17 =&gt; 2147000193
    18 =&gt; 2147000199
    19 =&gt; 2147000201
    20 =&gt; 2147000202
    21 =&gt; 2147000204
    22 =&gt; 2147000187
    23 =&gt; 2147000218
    24 =&gt; 2147000222
    25 =&gt; 2147000301
    26 =&gt; 2147000433
    27 =&gt; 2147000434
    28 =&gt; 2147000438
    29 =&gt; 2147000461
    30 =&gt; 2147000120
    31 =&gt; 2147000462
    32 =&gt; 2147002088
    33 =&gt; 2147002672
    34 =&gt; 2147003278
    35 =&gt; 2147000229
    36 =&gt; 2147000232
    37 =&gt; 2147000326
  ]
  __id =&gt; "0.97800600 1383227941"
}
  errorcode =&gt; 0
  additional =&gt; "Similar ipaymentIds of 2147000001 retrieved."
  __id =&gt; "

0.97788900 1383227941"
}</textarea>

如果我尝试使用outerHTML,它会打印除XML之外的所有内容。这是为什么?我怎样才能获得我需要的信息?它是通过javascript生成的。

1 个答案:

答案 0 :(得分:0)

我已经设法自己找到了这个问题的答案(最后);在实际打印出值之前,脚本需要超时“time.sleep(1)”,因为该字段是使用jquery填充的。 没有超时,脚本实际上会在填充元素之前获取元素的innerHTML。这就是输出为空的原因。