Firefox IDE for Selenium能否导出为常规Python代码?

1 投票
1 回答
1323 浏览
提问于 2025-04-16 14:54

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接口。

http://seleniumhq.org/docs/03_webdriver.html

撰写回答