1.Selenium工作原理
- testcase
1.调用WebDriver API编写测试脚本
2.发送Http请求给Browser Drivers,此时相当于有一个HttpClient
- Browser Drivers
1.不同的浏览器,其Driver不一样,如:Google(GeckoDriver),Chrome(ChromeDriver)
2.接收到测试脚本发送的Http请求后,解析并转发给真正的浏览器
注:
由于不同的浏览器的驱动不一样,调用Driver时,其实际调用均是RemoteWebDriver(即:remote.webdriver.WebDriver),并开启4444端口,具体如下:
driver = webdriver.Firefox()
#调用的是firefox下的webdriver
#每个浏览器下的webdriver继承的是RemoteWebDriver
#RemoteWebDriver进行如下操作
def __init__(self, command_executor='http://127.0.0.1:4444/wd/hub',
desired_capabilities=None, browser_profile=None, proxy=None,
keep_alive=False, file_detector=None, options=None):
- Real Browser
1.执行Driver转发的命令,并驱动浏览器
2.返回执行的结果