Как подключить действия Python Selenium к набору тестов Robotframework

#python #robotframework

#python #robotframework

Вопрос:

Я пытаюсь выполнить проверку заголовка веб-страницы с помощью пользовательского скрипта Python в Robotframework.

Проблема в том, что даже если в заголовке есть «https», тест возвращается как «PASS» в журнале robotframework: похоже, что скрипт не связан с правильным сеансом драйвера или что-то в этом роде.

Я уверен, что там много ошибок, поэтому, если бы вы могли мне помочь, я был бы очень признателен.

Вот код python:

 from robot.api import logger
from SeleniumLibrary import SeleniumLibrary
from SeleniumLibrary.base import keyword
from SeleniumLibrary.keywords import BrowserManagementKeywords
from selenium.webdriver.support.ui import WebDriverWait
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from robot.libraries.BuiltIn import BuiltIn


class  title_check(SeleniumLibrary):

    @keyword('test_keyword')
    def title_checker(self):
        selib = BuiltIn().get_library_instance('SeleniumLibrary')
        driver = selib._current_browser()

        self.assertNotIn("https", driver.title)
  

и вот ключевое слово robotframework:

    check title
       Title_checker.test_keyword
  

Комментарии:

1. Это действительно ваш код? Вы явно создаете новый экземпляр драйвера, однако в следующей строке вы используете driver , а не self.driver . Я не понимаю, почему вы не получаете сообщение об ошибке при запуске этого кода. Вы также не определили ключевое слово с именем keyword , хотя вы пытаетесь использовать ключевое слово с этим именем.

2. Привет @BryanOakley Извините за вставку такого плохого кода, вот почему я прошу о помощи. Любой совет был бы высоко оценен. Что касается открытия новой версии драйвера, я много раз пытался выяснить, как подключиться к открытому фреймворку one robot, и это часть моего вопроса.

Ответ №1:

Я действительно не понимаю причину, стоящую за этим кодом Python. Я бы сделал это непосредственно в RF:

 Title Checker
    Open Browser     ....
    ${title} =     Get Title
    Should Not Contain    ${title}    https
  

Комментарии:

1. спасибо, это очень хорошее решение, которое я игнорировал. 🙂