Notieren Sie sich die Profileinstellungen, auf die Sie beim Schreiben von Tests mit Selen gestoßen sind. Ich bin neu in Python, bitte haben Sie Verständnis dafür, dass der Code seltsam sein kann.
Das Bauverfahren ist an vielen Stellen geschrieben, daher werde ich es weglassen.
Ich habe auf die folgende Seite verwiesen. http://treeapps.hatenablog.com/entry/2014/10/16/015439 https://pypi.python.org/pypi/selenium
Es ist eine Konfiguration von Xvfb + FireFox + Selen (2.44.0).
Wenn der User-Agent identifiziert und die für den PC / das Smartphone optimierten Seiten separat verteilt werden, ist ein Test erforderlich, der die UA (Mobile Safari usw.) des Smartphones angibt. Wenn Sie den Test in der Entwicklungsumgebung ausführen, denke ich, dass es sich möglicherweise um ein Oleore-Zertifikat handelt. Um diese zu unterstützen, ist die anfängliche Einstellung des Profils erforderlich.
sp_webdriver.py
import os
from selenium import webdriver
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
profile = FirefoxProfile()
#Zertifikatwarnungen ignorieren
profile.set_preference("webdriver_assume_untrusted_issuer", False)
profile.set_preference("webdriver_accept_untrusted_certs", True)
profile.accept_untrusted_certs = True
# User-Umschreiben des Agenten(Beispiel: iOS 8.0)
profile.set_preference("general.useragent.override", "Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12A365 Safari/600.1.4")
profile.update_preferences()
driver = webdriver.Firefox(profile)
Ich werde einen Testfall schreiben. Beim eigentlichen Schreiben halte ich es für eine gute Idee, eine Basisklasse zu erstellen und dann nur den Testteil zu implementieren.
TestCase.py
# -*- coding: utf-8 -*-
import sys, os
import datetime
from selenium import webdriver
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
import unittest
class TestCase(unittest.TestCase):
def setUp(self):
profile = FirefoxProfile()
profile.set_preference("webdriver_assume_untrusted_issuer", False)
profile.set_preference("webdriver_accept_untrusted_certs", True)
profile.accept_untrusted_certs = True
profile.set_preference("general.useragent.override", "Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12A365 Safari/600.1.4")
profile.update_preferences()
self.driver = webdriver.Firefox(profile)
self.base_url = "http://m.finance.yahoo.co.jp/"
self.driver.implicitly_wait(30)
self.accept_next_alert = True
def ssAssertEquals(self, left, right):
try:
#Machen Sie einen Screenshot von assertionError
self.assertEqual(left, right)
except AssertionError, e:
now = datetime.datetime.now()
self.driver.save_screenshot("/var/log" + self.__class__.__name__ + "_" + now.strftime("%Y%m%d%H%M%S") + ".png ")
raise e
def test_sitetop(self):
self.driver.get(self.base_url)
self.ssAssertEquals(u"Y!Finanzen", self.driver.title)
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()
Recommended Posts