2

Python にエクスポートされたさまざまな Selenium WebDrivers を実行する Python スクリプトがあります。スクリプトと Web ドライバーは、私がやりたいことを実行します。スクリプトが Web ドライバーを実行すると、Web ドライバーは必要な処理を実行し、スクリプトに戻ってスクリプトを続行しますが、一時停止し、Firefox が再びポップアップして、同じ Web ドライバー タスクを再度実行します。これは、Web ドライバーまたはスクリプトから得られる結果には影響しませんが、実行時間が大幅に増加します。

webdriver の最初の実行後、シェルは以下を返します。

Ran 1 test in 192.680s
OK

ただし、予期せず webdriver を繰り返すと、ピリオド "." しか返されません。

これがwebdriverのコードです。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
import unittest, time, re

class WebdriverViewas(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.implicitly_wait(30)
        self.base_url = #website I'm interested in visiting
        self.verificationErrors = []
        self.accept_next_alert = True

    def test_webdriver_viewas(self):
        #Here I just tell the webdriver what to do, I doubt this is causing the problem

    def is_element_present(self, how, what):
        try: self.driver.find_element(by=how, value=what)
        except NoSuchElementException, e: return False
        return True

    def is_alert_present(self):
        try: self.driver.switch_to_alert()
        except NoAlertPresentException, e: return False
        return True

    def close_alert_and_get_its_text(self):
        try:
            alert = self.driver.switch_to_alert()
            alert_text = alert.text
            if self.accept_next_alert:
                alert.accept()
            else:
                alert.dismiss()
            return alert_text
        finally: self.accept_next_alert = True

    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)

if __name__=='__main__':

    try:
        unittest.main() 
    except SystemExit as inst:
        if inst.args[0] is True: # raised by sys.exit(True) when tests failed
            raise

この問題は unittest モジュールで解決できると思いましたが、私が行った調査では何も見つかりませんでしたし、同様の問題を抱えている人を見つけることもできませんでした。

4

0 に答える 0