Selenium webdriver打开chrom的多个实例

2024-09-27 00:17:16 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我可以在普通和匿名模式下打开两个实例,但当设置值时,它会被写入同一个页面。代码如下:

我的测试脚本:

#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

Tags: selfbrowsergetbydriverelementchromexpath
1条回答
网友
1楼 · 发布于 2024-09-27 00:17:16
#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元素。在

相关问题 更多 >

    热门问题