Не удается определить элемент в браузере осколков - PullRequest
0 голосов
/ 11 июня 2018

У меня есть следующий фрагмент 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 в виде пустого списка.

Может кто-нибудь указать на мою ошибку?

1 Ответ

0 голосов
/ 12 июня 2018

Я впервые использую 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.

Просто предположение, может быть, хороший момент для начала.

...