Selenium webdriver打开多个chrome实例

时间:2016-01-13 18:20:16

标签: python selenium

要求:需要打开两个chrome实例,一个在普通模式下,另一个在隐身模式下。加载相同的URL,在两个实例上都说facebook.com。并尝试使用不同的凭据登录。

我可以在普通模式和隐身模式下打开两个实例,但在设置值时会将其写入同一页面。以下是代码:

MyTest脚本:

#calling the driver 
self.driverObj1 = WebAction().get_private_browser_driver(browser)
self.driverObj2 = WebAction().get_browser_driver(browser)


#Opening the browser and load the URL
WebAction().explicit_load_url_in_browser(self.driverObj1, self.url, self.elementforwait)
WebAction().explicit_load_url_in_browser(self.driverObj2, self.url,self.elementforwait)

#Locating the User Input 
page1_loginuser = WebModel().get_element_by_xpath(self.driverObj1, self.inputxpath['logintext'])
page1_loginpass = WebModel().get_element_by_xpath(self.driverObj1, self.inputxpath['loginpass'])
page1_loginbutton = WebModel().get_element_by_xpath(self.driverObj1, self.inputxpath['loginbutton'])

page2_loginuser = WebModel().get_element_by_xpath(self.driverObj1, self.inputxpath['logintext'])
page2_loginpass = WebModel().get_element_by_xpath(self.driverObj1, self.inputxpath['loginpass'])
page2_loginbutton = WebModel().get_element_by_xpath(self.driverObj1, self.inputxpath['loginbutton'])

#filling the details and click on button
page1_loginuser.send_keys(self.logininput1['username'])
page1_loginpass.send_keys(self.logininput1['pass'])
page1_loginbutton.click()

page2_loginuser.send_keys(self.logininput2['username'])
page2_loginpass.send_keys(self.logininput2['pass'])
page2_loginbutton.click()


My class WebModel has two methods
# Method - to get chrome driver
def get_chrome_driver(self):
    path_of_driver = self.get_chrome_driver_path()
    self.chromeDriver = webdriver.Chrome(path_of_driver)     
    return self.chromeDriver

# Method - to get chrome incognito
def get_private_chrome_driver(self):
    path_of_driver = self.get_chrome_driver_path()
    chrome_option = webdriver.ChromeOptions()
    chrome_option.add_argument("--incognito")
    self.chromeDriver = webdriver.Chrome(path_of_driver, chrome_options=chrome_option)
    return self.chromeDriver

class WebAction has two methods  

def get_browser_driver(self, browserName):
    try:
        if browserName == 'chrome':
            self.browserDriver = self.webmodelObj.get_chrome_driver()

        elif browserName == 'firefox':
            self.browserDriver = self.webmodelObj.get_firfox_driver()
        elif browserName == 'ie':
            self.browserDriver = self.webmodelObj.get_ie_driver()
        else:
            self.browserDriver = self.webmodelObj.get_safari_driver()

        return self.browserDriver
    except:
        print "FAIL: UNABLE TO CONNECT WITH %s"%browserName
        return False

def get_private_browser_driver(self,browserName):
    self.browserDriver = False
    try:
        if browserName == 'chrome':
            self.browserDriver = self.webmodelObj.get_private_chrome_driver()

        return self.browserDriver
    except:
        print "Fail: Unable to Connect with %s" %(browserName)    
        return self.browserDriver

1 个答案:

答案 0 :(得分:0)

#Locating the User Input     
page2_loginuser = WebModel().get_element_by_xpath(self.driverObj1, self.inputxpath['logintext'])
page2_loginpass = WebModel().get_element_by_xpath(self.driverObj1, self.inputxpath['loginpass'])
page2_loginbutton = WebModel().get_element_by_xpath(self.driverObj1, self.inputxpath['loginbutton'])

您正在使用self.driverObj1查找page2_login元素。