Notez les paramètres de profil sur lesquels vous êtes tombé par hasard lors de l'écriture de tests avec Selenium. Je suis nouveau sur Python, alors comprenez que le code peut être étrange.
La procédure de construction est écrite sur de nombreux sites, je vais donc l'omettre.
Je me suis référé au site suivant. http://treeapps.hatenablog.com/entry/2014/10/16/015439 https://pypi.python.org/pypi/selenium
C'est une configuration de Xvfb + FireFox + Selenium (2.44.0).
Si l'User-Agent est identifié et que les pages optimisées pour le PC / smartphone sont séparées, un test qui spécifie l'UA (Safari mobile, etc.) du smartphone est nécessaire. De plus, lors de l'exécution du test dans l'environnement de développement, je pense qu'il peut s'agir d'un certificat oléore. Pour les prendre en charge, le paramétrage initial du profil est requis.
sp_webdriver.py
import os
from selenium import webdriver
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
profile = FirefoxProfile()
#Ignorer les avertissements de certificat
profile.set_preference("webdriver_assume_untrusted_issuer", False)
profile.set_preference("webdriver_accept_untrusted_certs", True)
profile.accept_untrusted_certs = True
# User-Réécriture d'agent(Exemple: 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)
J'écrirai un cas de test. Lors de l'écriture, je pense que c'est une bonne idée de créer une classe de base, puis d'implémenter uniquement la partie test.
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:
#Prendre une capture d'écran sur 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!la finance", self.driver.title)
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()
Recommended Posts