Кросс-браузерное тестирование с Selenium и Python - PullRequest
2 голосов
/ 31 октября 2019

Я пытаюсь запустить этот код, чтобы выполнить какое-то действие в Chrome и Firefox, но когда я запускаю тестовый запуск Chrome, и в Chrome происходит сбой тестовых случаев, тогда Firefox открывается, и тестовые случаи прекрасно работают в Firefox.

Я пробовал цикл и пару вещей, которые не работали.

Вот мой код:

from selenium import webdriver as wd
import pytest
import time
Chrome=wd.Chrome(executable_path=r"C:\Chrome\chromedriver.exe")
Firefox=wd.Firefox(executable_path=r"C:\geckodriver\geckodriver.exe")
class TestLogin():
    @pytest.fixture()
    def setup1(self):
        browsers=[Chrome, Firefox]
        for i in browsers:
            self.driver= i
            i.get("https://www.python.org")
            time.sleep(3)

        yield
        time.sleep(3)
        self.driver.close()

    def test_Python_website(self,setup1):
        self.driver.find_element_by_id("downloads").click()
        time.sleep(3)

1 Ответ

0 голосов
/ 31 октября 2019

Вместо явных sleep, вам следует дождаться элемента:

from selenium import webdriver as wd
from selenium.webdriver.support import expected_conditions as EC
import pytest
import time

Chrome=wd.Chrome(executable_path=r"C:\Chrome\chromedriver.exe")
Firefox=wd.Firefox(executable_path=r"C:\geckodriver\geckodriver.exe")

class TestLogin():
    @pytest.fixture()
    def setup1(self):
        browsers = [Chrome, Firefox]
        for i in browsers:
            self.driver = i
            i.get("https://www.python.org")

        yield
        self.driver.quit()

    def test_Python_website(self, setup1):
        wait = WebDriverWait(self.driver, 10)
        downloads = wait.until(EC.element_to_be_clickable(By.ID, "downloads"))
        downloads.click()

Примечание: вы, вероятно, захотите self.driver.quite(), так как это закроет окно и приведет к закрытию процесса браузеравниз также. Вызов self.driver.close() только закроет окно, но оставит процесс firefox.exe или chrome.exe запущенным в памяти после завершения теста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...