Firefox IDE for Selenium能否导出为常规Python代码?
Python的Selenium库页面上有一个示例:
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.common.keys import Keys
from time
browser = webdriver.Firefox() # Get local session of firefox
browser.get("http://www.yahoo.com") # Load page
assert browser.title == "Yahoo!"
elem = browser.find_element_by_name("p") # Find the query box
elem.send_keys("selenium" + Keys.RETURN)
time.sleep(0.2) # Let the page load, will be added to the API
try:
browser.find_element_by_xpath("//a[contains(@href,'http://seleniumhq.org')]")
except NoSuchElementException:
assert 0, "can't find seleniumhq"
browser.close()
但是,当我从Firefox的Selenium IDE导出一个保存的会话时,生成的Python代码看起来就完全不同了:
from selenium import selenium
import unittest, time, re
class create_order(unittest.TestCase):
def setUp(self):
self.verificationErrors = []
self.selenium = selenium("localhost", 4444, "*chrome", "http://localhost/")
self.selenium.start()
def test_create_order(self):
sel = self.selenium
sel.open("/User/LogOn")
sel.type("UserName", "testuser")
sel.type("Password", "123")
sel.click("//input[@value='login']")
sel.wait_for_page_to_load("30000")
sel.click("link=Settings")
sel.wait_for_page_to_load("30000")
sel.click("//input[@value='Some Link']")
sel.wait_for_page_to_load("30000")
sel.click("link=Save>")
sel.wait_for_page_to_load("30000")
def tearDown(self):
self.selenium.stop()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__":
unittest.main()
这是不是在用不同的接口呢?
1 个回答
1
第一个代码片段使用的是更新版的WebDriver接口。
第二个代码片段使用的是最初的Selenium 1接口。