Python Selenium:如何在输入字段中获取JavaScript生成的文本

时间:2015-06-23 00:35:11

标签: javascript python selenium

我在使用Python和我的网页上的其中一个表单中的用户名字段中获取文本时遇到问题。硒

从列表中选择用户后,我有一个由JS填充的字段:

<select id="users" onchange="checkUser(document.getElementById('configpin'))" ondblclick="document.getElementById('users').size=1; showUser(document.getElementById('configpin'))" onmouseout="document.getElementById('users').size=1" size="1"><option value="1">1 User 1</option>[...]</option></select>

字段:

<input name="name1" value="" type="text" id="name1" onkeyup="checkNameEntry('name1',20)" onchange="checkNameEntry('name1',20)" onkeydown="if(event.keyCode == 13) submitUser(document.getElementById('configpin'));">

我正在尝试将该文本显示在该字段中,但它不起作用。 我在努力:

uname = driver.find_element_by_id('name1').get_attribute('innerHTML')

uname = driver.find_element_by_id('name1').text

但在这两种情况下,我得到的只是一个空字符串。我希望这是一个常见问题,应该有一些明显的解决方案,但我无法找到它。

2 个答案:

答案 0 :(得分:1)

我更深入地分析了网页源代码,事实证明,JS实际上称为Ajax,而我在this thread中读到,你只需使用.get_attribute(&#39; value&#39; )获取文本。起初我觉得奇怪,因为没有属性&#39;值&#39;在HTML代码中,但它的工作原理。

答案 1 :(得分:0)

也许你必须按名称找到元素,如下所示:

uname = driver.find_element_by_name('name1').text

请在此处查看官方documentation