def test_add_prod_to_cart(driver): driver.get("http://localhost/litecart/public_html/en/") driver.implicitly_wait(60) for i in range(1, 4): # выберем товар рандомно и добавим его в таблицу duck_crowd = driver.find_elements_by_xpath( ".//ul[@class='listing-wrapper products']//li") print("Total count of ducks:" + str(len(duck_crowd))) random_index = random.randint(0, len(duck_crowd) - 1) print("Index of random item:" + str(random_index)) go = duck_crowd[random_index].find_element_by_xpath( "./a[@class='link']").click() driver.find_element_by_name('add_cart_product').click() sleep(10) wait = WebDriverWait(driver, 10) # driver.find_element_by_xpath("//*[@id='box-product']//form//td[@class='options']/strong").is_selected() # driver.find_element_by_xpath("//*[@id='box-product']//select/option[2]").click() # driver.find_element_by_name('add_cart_product').click() WebDriverWait(driver, 10).until( EC.text_to_be_present_in_element( (By.XPATH, ".//*[ @ id = 'cart']//a//span[@class='quantity']"), str(i))) # ждем что поменяется свойство текста у элемента потом щелкаем по главной странице driver.get("http://localhost/litecart/public_html/en/") # открыть корзину driver.get("http://localhost/litecart/public_html/en/checkout") sleep(10) order = driver.find_elements_by_xpath( ".//*[@id='order_confirmation-wrapper']/table/tbody/tr/td[@class='unit-cost']" ) print("Total_order_distinct_prod:" + str(len(order))) for i in range(len(order)): driver.find_element_by_name('remove_cart_item').click() wait = WebDriverWait(driver, 10) wait.until(EC.staleness_of(order[i]))
def test_new_subscriber_registration(driver): # рандомный mail mail = generate_mail() driver.get("http://localhost/litecart/public_html/en/") driver.implicitly_wait(60) driver.find_element_by_link_text("New customers click here").click() find_and_fill_element(driver, 'tax_id', "1") find_and_fill_element(driver, 'company', "2") find_and_fill_element(driver, 'firstname', "3") find_and_fill_element(driver, 'lastname', "4") find_and_fill_element(driver, 'address1', "5") find_and_fill_element(driver, 'address2', "6") find_and_fill_element(driver, 'postcode', "123456") find_and_fill_element(driver, 'city', "8") find_and_fill_element(driver, 'email', mail[0]) find_and_fill_element(driver, 'phone', "92112345678") find_and_fill_element(driver, 'password', "1234") find_and_fill_element(driver, 'confirmed_password', "1234") ### driver.find_element_by_name("create_account").click() ### driver.find_element_by_link_text("Logout").click() find_and_fill_element(driver, 'password', "1234") find_and_fill_element(driver, 'email', mail[0]) driver.find_element_by_name("login").click() driver.find_element_by_link_text("Logout").click()
def cp10_cid(): if len(filtered_cid) > 0: time.sleep(2) # WAIT 2 SECONDS! # SHOW THE REPORTING5 PANEL driver.switch_to_window(driver.window_handles[1]) userid_box = driver.find_element_by_name( 'txtUserID') # Reporting5 # Reporting5 userid_box.clear() userid_box.send_keys(filtered_cid[-1]) show_report = driver.find_element_by_name( 'btnShowReport') # Reporting5 show_report.click() time.sleep(2) get_data_from_r5() else: refresh_button = driver.find_element_by_xpath( "/html/body/div/div/div[2]/div/div/div/div/div/ui-view/div/div/div[2]/div/section/div[3]/button[1]") refresh_button.click() time.sleep(10) # WAIT 10 SECONDS! get10_cid()
def test_error_in_browsers_log(driver): test_login(driver) driver.get( "http://localhost/litecart/public_html/admin/?app=catalog&doc=catalog&category_id=1" ) # links = driver.find_elements_by_xpath(".//table[@class='dataTable']//td[./img and ./a]/a") links = driver.find_elements( By.CSS_SELECTOR, "table.dataTable [href*='product_id']:not([title]") links_count = len(links) log = [] for i in xrange(links_count): links = driver.find_elements( By.CSS_SELECTOR, "table.dataTable [href*='product_id']:not([title]") links[i].click() print(links[i]) driver.implicitly_wait(60) driver.find_element_by_name("cancel").click() for l in driver.get_log("browser"): log = log.append(l) print(log) assert (log == 0)
def test_new_product_add(driver): test_login(driver) name_of_new_prod = get_random_name(letters, 10) driver.find_element_by_link_text("Catalog").click() driver.find_element_by_link_text("Add New Product").click() driver.find_element_by_css_selector("label").click() if not driver.find_element_by_name("status").is_selected(): driver.find_element_by_name("status").click() find_and_fill_element(driver, element_name='name[en]', value=name_of_new_prod) find_and_fill_element(driver, element_name='code', value='7') find_and_fill_element(driver, element_name='quantity', value='11') # driver.find_element_by_name('new_images[]').send_keys('/home/taipan/selenium/selenium_test/img/duck_image.png') driver.find_element_by_name('new_images[]').send_keys(img_path) driver.find_element_by_name('date_valid_from').click() driver.find_element_by_name('date_valid_from').send_keys('2017-12-12') driver.find_element_by_name('date_valid_to').click() driver.find_element_by_name('date_valid_to').send_keys('2019-12-12') driver.find_element_by_link_text("Information").click() if not driver.find_element_by_xpath( "//div[@id='tab-information']//select[normalize-space(.)='-- Select -- ACME Corp.']//option[2]" ).is_selected(): driver.find_element_by_xpath( "//div[@id='tab-information']//select[normalize-space(.)='-- Select -- ACME Corp.']//option[2]" ).click() find_and_fill_element(driver, element_name='keywords', value='my_duck') find_and_fill_element(driver, element_name='short_description[en]', value='my_duck') driver.find_element_by_link_text("Prices").click() driver.find_element_by_name("purchase_price").send_keys("22") if not driver.find_element_by_xpath( "//div[@id='tab-prices']/table[1]/tbody/tr/td/select//option[2]" ).is_selected(): driver.find_element_by_xpath( "//div[@id='tab-prices']/table[1]/tbody/tr/td/select//option[2]" ).click() find_and_fill_element(driver, element_name='prices[USD]', value='23') driver.find_element_by_name("save").click() driver.find_element_by_id("content").click() # проверим что товар появился на странице просто сравнив его имя driver.find_element_by_link_text("Catalog").click() test = "//a[text()='" + str(name_of_new_prod) + "']" assert_element = driver.find_elements_by_xpath(test) print(len(assert_element)) assert len(assert_element) == 1
def find_and_fill_element(driver, element_name, value): driver.find_element_by_name(element_name).click() driver.find_element_by_name(element_name).clear() driver.find_element_by_name(element_name).send_keys(value)