这是一段应该在不到一秒的时间内运行的代码。 它计算页面中填充点的数量。 有没有更快的方法呢?
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()
答案 0 :(得分:0)
有很多事情会影响测试执行的性能。在查找元素方面,尽量避免使用xpath,因为已知在许多情况下可以提供最慢的性能。请改用id或css。在驾驶员方面,你已经使用无头,这是最快的。
答案 1 :(得分:0)
在整个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选择器来获取包含已填充的O gif的IMG标记的数量。