如何使这个python单元测试运行得更快?不到一秒钟

2024-04-25 04:54:13 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一段应该在不到一秒钟内运行的代码。 它计算页面中填充的点的数量。 有没有更快的办法?你知道吗

import unittest
from selenium import webdriver


class CountFilled(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.PhantomJS()

    def test_count_filled(self):
        self.driver.get("http://apply.dataprocessors.com.au/")
        self.driver.find_element_by_xpath("//form/p[1]/input").send_keys("PO65")
        self.driver.find_element_by_xpath("//form/p[3]/input").send_keys("{}".format(self.driver.page_source.count('"fi')))
        self.driver.find_element_by_xpath("//form/p[4]/input").click()

    def tearDown(self):
        self.driver.close()

if __name__ == "__main__":
    unittest.main()

Tags: importselfformsendinputbydefdriver
2条回答

计算整个HTML源代码中字符串“fi”的所有实例可能不是最有效(或准确)的方法。。。:)

我做了这件事而且成功了。。。我申请了你的工作。。。lol j/k公司

爪哇

driver.get("http://apply.dataprocessors.com.au/");
driver.findElement(By.name("jobref")).sendKeys("PO65");
List<WebElement> dots = driver.findElements(By.cssSelector("img[src='filled_O.gif']"));
driver.findElement(By.name("value")).sendKeys(String.valueOf(dots.size()));
driver.findElement(By.cssSelector("input[value='Submit']")).click();

Python(我认为这是正确的。。。或者接近,我不懂python)

self.driver.get("http://apply.dataprocessors.com.au/")
self.driver.find_element_by_name("jobref").send_keys("PO65")
dots = self.driver.find_element_by_css_selector("img[src='filled_O.gif']")
self.driver.find_element_by_name("value").send_keys(len(dots)) // does len(dots) need to be converted to a string?
self.driver.find_element_by_css_selector("input[value='Submit']").click()

基本上,我使用CSS选择器来获取包含填充的gif的IMG标记的数量。你知道吗

有很多事情会影响测试执行的性能。在查找元素时,尽量避免使用xpath,因为在许多情况下,xpath的性能是最慢的。改用id或css。在司机方面,你已经在使用无头驾驶,这是最快的了。你知道吗

相关问题 更多 >