Скриншот selenium ниже работает и делает то, что мне нужно. Но, как вы видите, сценарий довольно уродливый и очень избыточный, и моя цель - сделать код более компактным и менее избыточным.Как запустить тесты Selenium параллельно с python?
Теперь он должен инициировать 5 сеансов хрома, вводя 5 разных учетных данных. Я знаю, что должен многому решать, используя петли, но, к сожалению, мои навыки программирования не так хороши.
def setUp(self):
self.driver1 = webdriver.Chrome("C:\chromedriver\chromedriver.exe")
self.driver2 = webdriver.Chrome("C:\chromedriver\chromedriver.exe")
self.driver3 = webdriver.Chrome("C:\chromedriver\chromedriver.exe")
self.driver4 = webdriver.Chrome("C:\chromedriver\chromedriver.exe")
self.driver5 = webdriver.Chrome("C:\chromedriver\chromedriver.exe")
def test_affersverken(self):
###############driver1##########################
driver1 = self.driver1
driver1.get("www.somepage.com")
linkmenus = self.driver1.find_elements_by_xpath(
".//ul[@id='superfish-1' and @class='sf-menu menu-universe-menu sf- horizontal sf-style-none sf-js-enabled']/li/a")
listmenus = []
for menus in linkmenus:
listmenus.append(menus.text)
lastMenu = listmenus[-1]
WebDriverWait(self.driver1, 10).until(EC.presence_of_element_located((By.LINK_TEXT, lastMenu))).click()
username1 = self.driver1.find_element_by_xpath(".//*[@id='edit-name']")
username1.send_keys(someuser)
password1 = self.driver1.find_element_by_xpath(".//*[@id='edit-pass']")
password1.send_keys(somepassword)
submit1 = self.driver1.find_element_by_xpath(".//*[@id='edit-submit']")
submit1.submit()
###############driver2##########################
driver2 = self.driver2
driver2.get("www.somepage.com")
linkmenus = self.driver2.find_elements_by_xpath(
".//ul[@id='superfish-1' and @class='sf-menu menu-universe-menu sf-horizontal sf-style-none sf-js-enabled']/li/a")
listmenus = []
for menus in linkmenus:
listmenus.append(menus.text)
lastMenu = listmenus[-1]
WebDriverWait(self.driver2, 10).until(EC.presence_of_element_located((By.LINK_TEXT, lastMenu))).click()
username2 = self.driver2.find_element_by_xpath(".//*[@id='edit-name']")
username2.send_keys(someuser)
password2 = self.driver2.find_element_by_xpath(".//*[@id='edit-pass']")
password2.send_keys(somepassword)
submit2 = self.driver2.find_element_by_xpath(".//*[@id='edit-submit']")
submit2.submit()
###############driver3##########################
driver3 = self.driver3
driver3.get("www.somepage.com")
linkmenus = self.driver3.find_elements_by_xpath(
".//ul[@id='superfish-1' and @class='sf-menu menu-universe-menu sf-horizontal sf-style-none sf-js-enabled']/li/a")
listmenus = []
for menus in linkmenus:
listmenus.append(menus.text)
lastMenu = listmenus[-1]
WebDriverWait(self.driver3, 10).until(EC.presence_of_element_located((By.LINK_TEXT, lastMenu))).click()
username3 = self.driver3.find_element_by_xpath(".//*[@id='edit-name']")
username3.send_keys(someuser)
password3 = self.driver3.find_element_by_xpath(".//*[@id='edit-pass']")
password3.send_keys(somepassword)
submit3 = self.driver3.find_element_by_xpath(".//*[@id='edit-submit']")
submit3.submit()
###############driver4##########################
driver4 = self.driver4
driver4.get("www.somepage.com")
linkmenus = self.driver4.find_elements_by_xpath(
".//ul[@id='superfish-1' and @class='sf-menu menu-universe-menu sf-horizontal sf-style-none sf-js-enabled']/li/a")
listmenus = []
for menus in linkmenus:
listmenus.append(menus.text)
lastMenu = listmenus[-1]
WebDriverWait(self.driver4, 10).until(EC.presence_of_element_located((By.LINK_TEXT, lastMenu))).click()
username4 = self.driver4.find_element_by_xpath(".//*[@id='edit-name']")
username4.send_keys("someuser")
password4 = self.driver4.find_element_by_xpath(".//*[@id='edit-pass']")
password4.send_keys(somepassword)
submit4 = self.driver4.find_element_by_xpath(".//*[@id='edit-submit']")
submit4.submit()
###############driver5##########################
driver5 = self.driver5
driver5.get("www.somepage.com")
linkmenus = self.driver5.find_elements_by_xpath(
".//ul[@id='superfish-1' and @class='sf-menu menu-universe-menu sf-horizontal sf-style-none sf-js-enabled']/li/a")
listmenus = []
for menus in linkmenus:
listmenus.append(menus.text)
lastMenu = listmenus[-1]
WebDriverWait(self.driver5, 10).until(EC.presence_of_element_located((By.LINK_TEXT, lastMenu))).click()
username5 = self.driver5.find_element_by_xpath(".//*[@id='edit-name']")
username5.send_keys(someuser)
password5 = self.driver5.find_element_by_xpath(".//*[@id='edit-pass']")
password5.send_keys(somepassword)
submit5 = self.driver5.find_element_by_xpath(".//*[@id='edit-submit']")
submit5.submit()
time.sleep(20)
def tearDown(self):
self.driver1.quit()
self.driver2.quit()
self.driver3.quit()
self.driver4.quit()
self.driver5.quit()