def test_click_add_po_from_so(driver): new_url = driver.current_url additional.wait_element(driver, rfq_to_po_data.so_generate_po_id, "id") driver.find_element(By.ID, rfq_to_po_data.so_generate_po_id).click() additional.wait_element(driver, rfq_to_po_data.create_quote_button, "xpath") # перенести в common i = 0 while i != len( driver.find_elements( By.XPATH, "//input[starts-with(@name, 'dropshipment')]")): driver.find_elements( By.XPATH, "//input[starts-with(@name, 'dropshipment')]")[i].click() i += 1 driver.find_element(By.XPATH, rfq_to_po_data.create_quote_button).click() if additional.check_exists_by_xpath('//button[@class="btn btn-success"]', driver) is True: driver.find_element(By.XPATH, '//button[@class="btn btn-success"]').click() else: return additional.wait_new_page(driver, new_url)
def logout(driver): time.sleep(1) additional.wait_element(driver, data.account_menu_id, 'id') driver.find_element(By.ID, data.account_menu_id).click() time.sleep(1) additional.wait_element(driver, data.logout_button_id, 'id') driver.find_element(By.ID, data.logout_button_id).click()
def add_product(driver): time.sleep(5) value = data.product_list_button additional.wait_element( driver, data.part_number_field_id, 'id') # additional.wait_element(driver, value, 'id') additional.select_first_cell(driver, value, False)
def select_vendor(driver): value = data.vendor_select_id # text = data.autotest_vendor # additional.select_value_from_dropdown(driver, value, text) element_id = value additional.wait_element(driver, element_id, 'id') driver.find_element(By.ID, element_id).click() elem = driver.find_element(By.ID, value) text = "Autotest User" time.sleep(1) wait = WebDriverWait(driver, 10) wait.until(EC.element_to_be_clickable((By.ID, value))) additional.wait_element(driver, value, 'id') time.sleep(1) driver.find_element(By.ID, value).click() elem.send_keys(Keys.CONTROL + "a") elem.send_keys(Keys.DELETE) elem.send_keys(text) elem.send_keys(Keys.ENTER) time.sleep(1) # additional.wait_element(driver, value, 'xpath') driver.find_element(By.XPATH, data.autotest_vendor).click()
def open_invoice_list(driver): additional.wait_element(driver, data.invoice_menu_id, 'id') additional.click_element_by_id(driver, data.invoice_menu_id) time.sleep(3) additional.click_element_by_id(driver, data.last_ivoice_id) additional.wait_element(driver, data.invoice_no_details_id, 'id')
def click_alt_offer(driver): value = data.save_and_alt_offer_id type = "id" additional.wait_element(driver, value, type).click() additional.wait_element(driver, '//a[contains(., "Create New line")]', 'xpath') additional.click_element_by_xpath(driver, '//a[contains(., "Create New line")]')
def expand_pdfmaker(driver): time.sleep(2) if driver.title == "Invoice": additional.wait_element(driver, "//h5[contains(., 'PDFMaker')]", 'xpath') driver.find_element(By.XPATH, "//h5[contains(., 'PDFMaker')]").click() else: additional.wait_element(driver, data.pdfmaker_tab, 'xpath') additional.click_element_by_xpath(driver, data.pdfmaker_tab)
def save_and_offer(driver): value = data.rfq_pn_save_and_offer_id newline = data.rfq_create_new_line # additional.wait_element(driver, value, 'id') driver.find_element(By.ID, value).click() additional.wait_element(driver, newline, 'xpath') driver.find_element(By.XPATH, newline).click() accept_vrp_description(driver, "Current")
def select_contact_name(driver): value = data.contact_name_selector_id additional.select_first_cell(driver, value, False) additional.wait_element(driver, data.contact_name_overwrite_adress, "xpath") driver.find_elements( By.XPATH, data.contact_name_overwrite_adress )[len(driver.find_elements(By.XPATH, data.contact_name_overwrite_adress)) - 1].click()
def click_add_rfq(driver, url): new_url = driver.current_url additional.wait_element(driver, data.add_rfq_id, 'id') driver.find_element(By.ID, data.add_rfq_id).click() additional.wait_new_page(driver, new_url) time.sleep(5) # additional.wait_element(driver, data.rfq_number_id, 'id') assert data.new_qa_rfq_url == driver.current_url or data.new_tst_rfq_url == driver.current_url and (data.new_rfq_title, driver.title)[0]
def fill_in_exchange_fee_cost(driver): value = data.ex_fee_cost_id text = '13' additional.wait_element(driver, data.ex_fee_cost_id, 'id') additional.fill_text_field(driver, value, text) driver.find_element(By.ID, value).send_keys(Keys.ENTER) assert additional.get_property_value(driver, value, "id") == text, "Wrong Exchange Fee Cost Value!" # assert additional.get_property_value(driver, data.ex_fee_price_id, "id") == "16.2500", "Exchange Fee Price Value recalculated incorrectly!!" assert float(additional.get_property_value(driver, data.ex_fee_price_id, 'id')) == \ float(additional.get_property_value(driver, data.ex_fee_cost_id, "id")) / float(additional.get_property_value(driver, data.rfq_pn_rate_id, "id")), "Exchange Fee Price Value recalculated incorrectly!!"
def click_add_rfq(driver, url): new_url = driver.current_url additional.wait_element(driver, data.add_rfq_id, 'id') driver.find_element(By.ID, data.add_rfq_id).click() additional.wait_new_page(driver, new_url) time.sleep(10) additional.wait_element(driver, data.rfq_number_id, 'id') assert (url + data.expected_url) == driver.current_url and ( "Rfq", driver.title)[0]
def select_repair_type(driver): value = data.rfq_pn_salestype_id text = data.rfq_repair time.sleep(1) # additional.wait_element(driver, value, 'id') driver.find_element(By.ID, value).click() additional.wait_element(driver, text, 'xpath') length = len(driver.find_elements(By.XPATH, text)) driver.find_elements(By.XPATH, text)[length - 1].click() assert additional.get_property_value(driver, value, "id") == "Repair/OH", "Wrong Type value!"
def fill_in_condition(driver): condition = data.rfq_pn_condition_id conditionval = data.rfq_pn_condition conditionval = "//li[contains(., 'NE')]" # additional.wait_element(driver, condition, 'id') driver.find_element(By.ID, condition).click() additional.wait_element(driver, conditionval, 'xpath') length = len(driver.find_elements(By.XPATH, conditionval)) driver.find_elements(By.XPATH, conditionval)[length - 1].click() assert additional.get_property_value(driver, condition, "id") == "NE", "Wrong Min.Vendor Order Value!"
def select_exchange_type(driver): value = data.rfq_pn_salestype_id text = data.rfq_exchange time.sleep(1) # additional.wait_element(driver, value, 'id') driver.find_element(By.ID, value).click() additional.wait_element(driver, text, 'xpath') length = len(driver.find_elements(By.XPATH, text)) driver.find_elements(By.XPATH, text)[length - 1].click() # additional.change_sales_type(driver, value, text) # additional.wait_element(driver, data.ex_fee_cost_id, 'id') assert additional.get_property_value(driver, value, "id") == "Exchange", "Wrong Sales Type Value!"
def test_click_add_quote_from_rfq(driver): new_url = driver.current_url additional.wait_element(driver, rfq_to_po_data.rfq_create_quote_id, "id") driver.find_element(By.ID, rfq_to_po_data.rfq_create_quote_id).click() additional.wait_element(driver, rfq_to_po_data.save_button_id, 'id') additional.wait_element(driver, rfq_to_po_data.quote_account_id, 'id') additional.wait_new_page(driver, new_url)
def fill_in_account_field(driver): element_id = data.rfq_search_account_id additional.wait_element(driver, element_id, 'id') driver.find_element(By.ID, element_id).click() elem = driver.find_element(By.ID, data.rfq_search_value_id) text = "Autotest" wait = WebDriverWait(driver, 10) wait.until(EC.element_to_be_clickable((By.ID, data.rfq_search_value_id))) additional.wait_element(driver, data.rfq_search_value_id, 'id') driver.find_element(By.ID, data.rfq_search_value_id).click() elem.send_keys(Keys.CONTROL + "a") elem.send_keys(Keys.DELETE) elem.send_keys(text) elem.send_keys(Keys.ENTER) time.sleep(3) additional.wait_element(driver, data.rfq_account_first_field, 'xpath') driver.find_element(By.XPATH, data.rfq_account_first_field).click() assert additional.get_property_value(driver, data.rfq_account_id, "id") == 'Account for autotests', \ "Wrong Account Name Value!"
def test_click_add_so_from_quote(driver): new_url = driver.current_url additional.wait_element(driver, rfq_to_po_data.quote_generate_so_id, "id") driver.find_element(By.ID, rfq_to_po_data.quote_generate_so_id).click() # bool(driver.find_elements(By.XPATH, '//input[@type="checkbox"]')[8].size == {'height': 20.0, 'width': 20.0}) additional.check_all_item_checkbuttons(driver) additional.wait_element(driver, rfq_to_po_data.create_quote_button, "xpath") driver.find_element(By.XPATH, rfq_to_po_data.create_quote_button).click() additional.wait_element(driver, rfq_to_po_data.save_button_id, 'id') additional.wait_new_page(driver, new_url)
def fill_in_tags(driver): value = data.rfq_pn_tags_id certtype = data.rfq_cert_type_id cert = data.rfq_pn_cert additional.wait_element(driver, value, 'id') driver.find_element(By.ID, value).click() additional.wait_element(driver, certtype, 'id') driver.find_element(By.ID, certtype).click() additional.wait_element(driver, cert, 'xpath') driver.find_element(By.XPATH, cert).click() assert driver.find_element(By.XPATH, '//span[contains(., "CofC Only")]'), "Can't select Cert type Value!"
def fill_in_contact_field(driver): element_id = data.rfq_search_contact_id time.sleep(3) additional.wait_element(driver, element_id, 'id') driver.find_element(By.ID, element_id).click() elem = driver.find_element(By.ID, data.rfq_search_value_id) text = "Autotest" additional.wait_element(driver, data.rfq_search_value_id, 'id') driver.find_element(By.ID, data.rfq_search_value_id).click() elem.send_keys(Keys.CONTROL + "a") elem.send_keys(Keys.DELETE) elem.send_keys(text) elem.send_keys(Keys.ENTER) time.sleep(3) additional.wait_element(driver, data.rfq_contact_first_field, 'xpath') driver.find_element(By.XPATH, data.rfq_contact_first_field).click() assert additional.get_property_value(driver, data.rfq_contact_id, "id") == 'Autotest User', "Wrong Contact Value!"
def fill_in_vendor_field(driver): element_id = data.rfq_vendor_search_id time.sleep(3) additional.wait_element(driver, element_id, 'id') driver.find_element(By.ID, element_id).click() elem = driver.find_element(By.ID, data.rfq_search_value_id) text = "Autotest User" additional.wait_element(driver, data.rfq_search_value_id, 'id') #time.sleep(3) driver.find_element(By.ID, data.rfq_search_value_id).click() elem.send_keys(Keys.CONTROL + "a") elem.send_keys(Keys.DELETE) elem.send_keys(text) elem.send_keys(Keys.ENTER) time.sleep(3) text = data.rfq_vendor_first_field additional.wait_element(driver, text, 'xpath') length = len(driver.find_elements(By.XPATH, text)) driver.find_elements(By.XPATH, text)[length - 1].click()
def save_and_quote(driver, url): value = data.rfq_save_button_id action = data.rfq_save_and_quote_id quote = data.create_new_quote_button # # time.sleep(3) driver.find_element(By.ID, value).click() additional.wait_element(driver, action, 'id') driver.find_element(By.ID, action).click() additional.wait_element(driver, quote, 'xpath') time.sleep(5) # # url_before = driver.current_url additional.wait_element(driver, quote, 'xpath') driver.find_element(By.XPATH, quote).click() # index = re.search("\d", driver.current_url).start() # new_url = driver.current_url[0:index] # quotedetailsurl = 'http://crmqa.bai-inc.eu/index.php?module=Quotes&view=Detail&record=' # additional.wait_new_page(driver, new_url) time.sleep(5) assert driver.current_url.split('=')[1] == "Quotes&view", "Wrong Quote Url"
def click_save_rfq(driver): driver.execute_script("window.scrollTo(0, 0)") additional.click_element_by_id(driver, data.save_rfq_id) additional.wait_element(driver, data.rfq_create_quote_id, 'id')
def fill_in_exchange_fee_cost(driver): value = data.ex_fee_cost_id text = '13' additional.wait_element(driver, data.ex_fee_cost_id, 'id') additional.fill_text_field(driver, value, text)
def fill_in_vendor_field(driver): element_id = data.vendor_list_id additional.wait_element(driver, element_id, 'id') additional.select_first_cell(driver, element_id, False)
def select_repair_type(driver): value = data.spli_sales_type_id text = 'Repair/OH' time.sleep(3) additional.change_sales_type(driver, value, text) additional.wait_element(driver, data.repair_b_check_price_id, 'id')
def select_exchange_type(driver): value = data.spli_sales_type_id text = 'Exchange' time.sleep(3) additional.change_sales_type(driver, value, text) additional.wait_element(driver, data.ex_fee_cost_id, 'id')
def open_profile_tab(driver, url): additional.click_element_by_xpath(driver, data.profile_menu_tab) additional.wait_element(driver, data.ci_user_name, "xpath") additional.wait_element(driver, data.contact_information_tab, "xpath") assert (url + data.profile_expected_url) == driver.current_url
def fill_in_account_field(driver): value = data.account_selector_id additional.wait_element(driver, value, 'id') additional.select_first_cell(driver, value, True)
def select_sold_by(driver): value = data.sold_by_id additional.wait_element(driver, value, 'id') additional.select_first_cell(driver, value, False)