我有以下HTML代码片段
<input type="text" name="fldLoginUserId" maxlength="15" size="10" onkeypress="return fSubmit(event);" value="" class="input_password">
这是较大的HTML的一部分。我可以使用Chrome-Inspect看到这个元素。但是,当我尝试像
这样的东西时myurl = 'xxx' # I am hiding xxx as I dont want to disclose the site here
from splinter import Browser
browser = Browser('chrome', **executable_path)
browser.visit(myurl)
customerId = browser.find_by_name('fldLoginUserId')
这会将customerId
作为空列表返回。
有人可以指出我正在犯的任何错误吗?
答案 0 :(得分:1)
这是我第一次在这里使用Splinter和python。您的代码似乎有效:
#!/usr/bin/python
from splinter import Browser
browser = Browser('chrome')
browser.visit('http://migueleonardortiz.com.ar')
customerId = browser.find_by_name('generator')
for objectx in customerId :
print objectx._element.get_attribute('content')
输出:
mortiz@florida:~/Documents/projects/python/splinter$ python web_browser_splinter.py
Divi v.2.5.6
WordPress 4.9.6
当我在HTML中询问不存在的值时,输出是一个空列表:
mortiz@florida:~/Documents/projects/python/splinter$ python web_browser_splinter.py
[]
我已将您的财产追踪到您可能正在使用的网站。该HTML由Javascript呈现:
document.write('<input type="text" name="fldLoginUserId" maxlength="15" size="13" autocomplete="off" onkeypress = "return fSubmit(event);" value="" oncopy="return false" ondrag="return false" ondrop="return false" onpaste="return false" />')
虽然HTML检查中存在该属性,但它的检索方式与我提供的示例相同。
因为它是由Javascript渲染的,我猜它是与此相关的东西和DOM加载顺序。
只是一个猜测,也许是一个很好的开始点。