使用 Python Selenium 检索 XML 表单



我将直接切入正题并提出问题:

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

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

我面临的问题是它什么都不打印。我已经用火虫检查了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>

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

我设法自己找到了这个问题的答案(终于); 脚本在实际打印出值之前需要一个超时 "time.sleep(1)",因为该字段是使用 jquery 填充的。如果没有超时,脚本实际上会在填充元素之前获取元素的内部 HTML。这就是输出为空白的原因。

最新更新