【问题标题】:Cannot identify element in splinter browser无法识别分裂浏览器中的元素
【发布时间】:2018-06-11 19:58:14
【问题描述】:

我有以下 HTML 的 sn-p

<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 作为一个空列表返回。

有人可以指出我犯的任何错误吗?

【问题讨论】:

  • 元素是否在 IFRAME 中?您是否尝试过在开发控制台中使用$$()$x() 来测试您的定位器?

标签: python selenium-webdriver splinter


【解决方案1】:

这是我第一次在这里使用带有 python 的 Splinter。您的代码似乎有效:

#!/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 加载顺序有关。

只是一个猜测,也许是一个很好的起点。

【讨论】:

    猜你喜欢
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 2015-02-28
    • 1970-01-01
    相关资源
    最近更新 更多