Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Selenium. Python. Работа с таблицами с подгружаемыми данными в DOM.



Software-Testing.Ru - портал тестировщиков  

Новые темы форума тестировщиков


Selenium. Python. Работа с таблицами с подгружаемыми данными в DOM.
2018-01-04 13:02

Добрый день! 

 

Работаю с Python и Selenium.

 

На Web страничке имеется таблица, в которой много строк, но чтобы просмотреть все строки нужно скроллировать таблицу -> то есть в DOM все строки таблицы сразу не видны, а они подгружаются по мере скроллирования.

 

Задача: Необходимо получить данные из всех строк таблицы.

 

Проблема: Так как не все строки видны в DOM, то мой код работает только для тех строк, которые видны.

 

Вопрос: Есть ли какой то инструмент, который может выгрузить все строки таблицы и таким образом можно получить все данные?



Python, Selene, PyTest, PyCharm. INTERNALERROR при запуске тестов
2018-01-04 15:13

Добрый день!

 

Осваиваю запуск тестов через PyCharm.

Есть два файла на одном уровне - google_test.py и rambler_test.py

В файле google_test один из тестов должен падать при проверке should(have.text("something"))

 

При запуске из консоли команды pytest всё в порядке: один тест падает, остальные проходят.

При запуске из PyCharm когда падает тест для google, то запуск тестов для rambler останавливается:

INTERNALERROR> Traceback (most recent call last):
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/_pytest/main.py", line 103, in wrap_session
INTERNALERROR>     session.exitstatus = doit(config, session) or 0
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/_pytest/main.py", line 141, in _main
INTERNALERROR>     config.hook.pytest_runtestloop(session=session)
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/pluggy/__init__.py", line 617, in __call__
INTERNALERROR>     return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/pluggy/__init__.py", line 222, in _hookexec
INTERNALERROR>     return self._inner_hookexec(hook, methods, kwargs)
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/pluggy/__init__.py", line 216, in <lambda>
INTERNALERROR>     firstresult=hook.spec_opts.get('firstresult'),
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/pluggy/callers.py", line 201, in _multicall
INTERNALERROR>     return outcome.get_result()
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/pluggy/callers.py", line 76, in get_result
INTERNALERROR>     raise ex[1].with_traceback(ex[2])
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/pluggy/callers.py", line 180, in _multicall
INTERNALERROR>     res = hook_impl.function(*args)
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/_pytest/main.py", line 164, in pytest_runtestloop
INTERNALERROR>     item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem)
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/pluggy/__init__.py", line 617, in __call__
INTERNALERROR>     return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/pluggy/__init__.py", line 222, in _hookexec
INTERNALERROR>     return self._inner_hookexec(hook, methods, kwargs)
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/pluggy/__init__.py", line 216, in <lambda>
INTERNALERROR>     firstresult=hook.spec_opts.get('firstresult'),
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/pluggy/callers.py", line 201, in _multicall
INTERNALERROR>     return outcome.get_result()
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/pluggy/callers.py", line 76, in get_result
INTERNALERROR>     raise ex[1].with_traceback(ex[2])
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/pluggy/callers.py", line 180, in _multicall
INTERNALERROR>     res = hook_impl.function(*args)
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/_pytest/runner.py", line 62, in pytest_runtest_protocol
INTERNALERROR>     runtestprotocol(item, nextitem=nextitem)
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/_pytest/runner.py", line 70, in runtestprotocol
INTERNALERROR>     rep = call_and_report(item, "setup", log)
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/_pytest/runner.py", line 159, in call_and_report
INTERNALERROR>     hook.pytest_runtest_logreport(report=report)
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/pluggy/__init__.py", line 617, in __call__
INTERNALERROR>     return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/pluggy/__init__.py", line 222, in _hookexec
INTERNALERROR>     return self._inner_hookexec(hook, methods, kwargs)
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/pluggy/__init__.py", line 216, in <lambda>
INTERNALERROR>     firstresult=hook.spec_opts.get('firstresult'),
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/pluggy/callers.py", line 201, in _multicall
INTERNALERROR>     return outcome.get_result()
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/pluggy/callers.py", line 76, in get_result
INTERNALERROR>     raise ex[1].with_traceback(ex[2])
INTERNALERROR>   File "/home/sheffsky/.virtualenvs/Python-8VdKJfWG/lib/python3.6/site-packages/pluggy/callers.py", line 180, in _multicall
INTERNALERROR>     res = hook_impl.function(*args)
INTERNALERROR>   File "/home/sheffsky/Software/pycharm-community/helpers/pycharm/teamcity/pytest_plugin.py", line 285, in pytest_runtest_logreport
INTERNALERROR>     self.teamcity.blockOpened(block_name, flowId=test_id)
INTERNALERROR>   File "/home/sheffsky/Software/pycharm-community/helpers/pycharm/teamcity/messages.py", line 90, in blockOpened
INTERNALERROR>     self.message('blockOpened', name=name, flowId=flowId)
INTERNALERROR>   File "/home/sheffsky/Software/pycharm-community/helpers/pycharm/_jb_runner_tools.py", line 195, in message
INTERNALERROR>     current, parent = TREE_MANAGER.node_ids
INTERNALERROR>   File "/home/sheffsky/Software/pycharm-community/helpers/pycharm/_jb_runner_tools.py", line 148, in node_ids
INTERNALERROR>     current = self._get_node_id(self.current_branch)
INTERNALERROR>   File "/home/sheffsky/Software/pycharm-community/helpers/pycharm/_jb_runner_tools.py", line 140, in _get_node_id
INTERNALERROR>     return self._node_ids_dict[".".join(branch)]
INTERNALERROR> KeyError: ''

pytest==3.3.1

selene==1.0.0a12

PyCharm 2017.3.2

 

При запуске из PyCharm через nose всё в порядке, проблема не воспроизводится.

 

Кто-нибудь сталкивался с подобным?



© 2010 | Software-Testing.Ru


В избранное