Esempio n. 1
0
 def test_add_node(self):
     driver = self.driver
     login.test_login(self)
     driver.find_element_by_link_text(u"存储节点管理").click()
     with file("../test_data/node_list_file") as f:
         ips = f.readlines()
         for ip in ips:
             node_mgmt = driver.find_element_by_class_name("toolbar-menu")
             ActionChains(driver).move_to_element(node_mgmt).perform()
             driver.find_element_by_link_text(u"添加存储节点").click()
             driver.find_element_by_id("clusternodeipaddr_octet_1").clear()
             driver.find_element_by_id(
                 "clusternodeipaddr_octet_1").send_keys(ip.split('.')[0])
             driver.find_element_by_id("clusternodeipaddr_octet_2").clear()
             driver.find_element_by_id(
                 "clusternodeipaddr_octet_2").send_keys(ip.split('.')[1])
             driver.find_element_by_id("clusternodeipaddr_octet_3").clear()
             driver.find_element_by_id(
                 "clusternodeipaddr_octet_3").send_keys(ip.split('.')[2])
             driver.find_element_by_id("clusternodeipaddr_octet_4").clear()
             driver.find_element_by_id(
                 "clusternodeipaddr_octet_4").send_keys(ip.split('.')[3])
             driver.find_element_by_xpath(
                 "(//button[@type='button'])[2]").click()
             driver.find_element_by_xpath(
                 "//button[@type='button']").click()
Esempio n. 2
0
def test_ext_links(driver):
    test_login(driver)
    driver.get(
        "http://localhost/litecart/public_html/admin/?app=countries&doc=countries"
    )
    driver.find_element_by_xpath(".//*[@id='content']/div/a").click()
    all_ex_link = driver.find_elements_by_xpath(
        ".//*[@id='content']/form/table//a[@target='_blank']")
    print("Total ext_link: " + str(len(all_ex_link)))
    # получаем набор текущих открытых окон
    main_window = driver.current_window_handle
    print('main_window')
    print(main_window)
    old_windows = driver.window_handles
    print('old_windows')
    print(old_windows)
    # нажимаем на ссылку, которая открывает документ в новом окне
    for j in range(2):
        for i in range(len(all_ex_link)):
            print("i=" + str(i))
            with wait_for_new_window(driver, 10):
                all_ex_link[i].click()
            # получаем новый набор включающий уже новое окно
            new_windows = driver.window_handles
            print('new_windows')
            print(new_windows)
            # получаем новые окна (из одного списка вычтем другой)
            new_window = list(set(new_windows).difference(old_windows))
            print('new_window')
            print(new_window)
            # закрываем новое окно
            driver.switch_to_window(new_window[0])
            driver.close()
            driver.switch_to_window(main_window)
Esempio n. 3
0
def test_geo_zones_page(driver):
    test_login(driver)
    driver.get(
        "http://localhost/litecart/public_html/admin/?app=geo_zones&doc=geo_zones"
    )
    #  зайти в каждую из стран
    geozones_list_text = []
    #  множество из ссылок на страницы с зонами
    geo_links = driver.find_elements_by_xpath(
        ".//*[@id='content']/form/table/tbody/tr[@class='row']/td [not(contains (@style,'text'))]/a"
    )
    for link in geo_links:
        print(link.get_attribute('href'))
        geozones_list_text.append(link.get_attribute('href'))

    #  далее бежим уже по спискам в открытых страничках
    for i in range(len(geozones_list_text)):
        geozones_list = []
        driver.get(geozones_list_text[i])
        geo_zones_in_selects = driver.find_elements_by_xpath(
            ".//*[@id='table-zones']/tbody/tr/td/select[starts-with(@name,'zones[') and not(contains (@aria-hidden,"
            "'true'))]/option[@selected='selected']")
        for geozones in geo_zones_in_selects:
            geozones_list.append(geozones.text)

        sorted_geozones_list = sorted(geozones_list)
        print(geozones_list)
        assert (geozones_list == sorted_geozones_list)
Esempio n. 4
0
    def test_create_ec(self):
        driver = self.driver
        login.test_login(self)
        driver.find_element_by_link_text(u"存储服务管理").click()
        create_service = driver.find_element_by_link_text(u"创建&扩容")
        ActionChains(driver).move_to_element(create_service).perform()
        driver.find_element_by_link_text(u"创建服务").click()
        driver.find_element_by_id("clusterservicename").clear()
        #填写服务名称
        driver.find_element_by_id("clusterservicename").send_keys("test")
        driver.find_element_by_id("btnext").click()
        #选择服务类型
        Select(driver.find_element_by_id(
            "serviceraidlv")).select_by_visible_text(u"N+M冗余")
        driver.find_element_by_id("clusterservicedisknum").send_keys("2")
        driver.find_element_by_id("clusterservicedispersenum").send_keys("1")

        driver.find_element_by_id("btnext").click()
        driver.find_element_by_css_selector("input[type=\"checkbox\"]").click()
        driver.find_element_by_id("btfinished").click()
        driver.find_element_by_xpath("(//button[@type='button'])[3]").click()
        time.sleep(2)
        driver.find_element_by_xpath("//button[@type='button']").click()
        driver.find_element_by_css_selector("a.ui-icon.ui-icon-power").click()
        self.driver.implicitly_wait(120)
        #删除存储卷
        driver.find_element_by_xpath("//button[@type='button']").click()
        time.sleep(3)
        driver.find_element_by_xpath(
            ".//*[@id='test_tr']/td[1]/dl[1]/dd/a").click()
        driver.find_element_by_xpath(
            ".//*[@id='ext-gen1018']/div[2]/div[3]/div/button[2]").click()
        self.driver.implicitly_wait(60)
        driver.find_element_by_xpath("//button[@type='button']").click()
Esempio n. 5
0
def test_countries(driver):
    test_login(driver)
    driver.get(
        "http://localhost/litecart/public_html/admin/?app=countries&doc=countries"
    )
    country_list = []
    zones_count = []
    country_acronym = []
    index_for_link = []
    rows = driver.find_elements_by_xpath(
        ".//table[@class='dataTable']//tr[@class='row']")
    # rows = wd.find_elements_by_xpath(".//table[@class='dataTable']//tr[@class='row' and position() <= 39]")
    i = 0
    for elements in rows:
        # теперь пробежим по столбцам текущего tr из цикла
        column = elements.find_elements_by_tag_name("td")
        country_list.append(column[4].text)
        zones_count.append(column[5].text)
        country_acronym.append(column[3].text)
        if int(column[5].text) > 0:
            index_for_link.append(i)
        i = i + 1
    # сравним список стран и отсортированный список
    sorted_country_list = sorted(country_list)
    assert country_list == sorted_country_list
    # print() print (country_list) print (zones_count) print (country_acronym) print print (index_for_link)
    for i in index_for_link:
        # print (country_acronym[i]) print(country_list[i]) print(zones_count[i])
        zone_page = (
            "http://localhost/litecart/public_html/admin/?app=countries&doc=edit_country&country_code="
            + str(country_acronym[i]))
        geo_zones(driver, zone_page, flag=0)
Esempio n. 6
0
 def test_add_node(self):
     driver = self.driver
     login.test_login(self)
     driver.find_element_by_link_text(u"存储节点管理").click()
     time.sleep(1)
     nodes = driver.find_elements_by_tag_name("dd")
     for node in nodes:
         print node.click()
Esempio n. 7
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
Esempio n. 8
0
    def test_add_domain(self):
	"""第一次登陆修改密码"""
        driver=self.driver
	#导入登录模块
        login.test_login(self)	
	driver.find_element_by_id("old_password").clear()
        driver.find_element_by_id("old_password").send_keys("12345678")
        driver.find_element_by_id("new_password").clear()
        driver.find_element_by_id("new_password").send_keys("12345678")
        driver.find_element_by_id("confirm_new_password").clear()
        driver.find_element_by_id("confirm_new_password").send_keys("12345678")
        driver.find_element_by_xpath(".//*[@id='ext-gen1018']/div/div[3]/div/button").click()
Esempio n. 9
0
 def test_test_license(self):
     """配置license需要在节点添加完成之后执行"""
     driver = self.driver
     #导入登录模块
     login.test_login(self)
     driver.find_element_by_link_text(u"管理License").click()
     driver.find_element_by_name("licensetable_length").click()
     driver.find_element_by_xpath(
         ".//*[@id='licensetable_length']/label/select/option[4]").click()
     f = len(file("../test_data/node_list_file", "r").readlines())
     time.sleep(2)
     for node in range(f):
         node_id = "node-" + str(int(node + 1)) + ".yyy_lic_status"
         driver.find_element_by_id(node_id).click()
Esempio n. 10
0
 def test_add_domain(self):
     """设置域名"""
     driver = self.driver
     #导入登录模块
     login.test_login(self)
     driver.find_element_by_link_text(u"存储节点管理").click()
     setup_domain = driver.find_element_by_link_text(u"设置")
     ActionChains(driver).move_to_element(setup_domain).perform()
     driver.find_element_by_link_text(u"设置域名").click()
     driver.find_element_by_id("clusterdomainname").clear()
     driver.find_element_by_id("clusterdomainname").send_keys("yyy")
     driver.find_element_by_id("domainnamesave").click()
     driver.find_element_by_xpath("(//button[@type='button'])[2]").click()
     driver.find_element_by_xpath("//button[@type='button']").click()
Esempio n. 11
0
def test_menu_header(driver):
    test_login(driver)
    link_array = []
    h1_array = []
    # основное меню
    menu = driver.find_elements_by_xpath(
        "//*[@id='app-']/a/span[@class='name']")  # количество пунктов
    for i in range(len(menu)):
        # после клика загрузится новая страница и все элементы, найденные ранее, будут считаться "протухшими" (stale),
        # с ними нельзя больше ничего делать # ищем список по новому и выбираем нужный элемент по индексу
        menu_el = driver.find_elements_by_xpath(
            "//*[@id='app-']/a/span[@class='name']")
        link_name = menu_el[i].text  # имя пункта главного меню
        print(str(i) + "." + link_name)
        # переходим к пункту основного меню
        menu_el[i].click()

        # ищем пункты подменю
        driver.implicitly_wait(5)
        sub_menu = driver.find_elements_by_xpath(
            "//ul[@class='docs']//li//span")
        print("Total submenu elements:" + str(len(sub_menu)))

        if len(sub_menu) < 1:
            head_title = driver.find_element_by_xpath(
                "//td[@id='content']//h1//span").text
            print("Main Link_text  : " + link_name)
            print("Head_title : " + head_title)
            link_array.append(link_name)
            h1_array.append(head_title)
        for j in range(len(sub_menu)):
            sub_menu_el = driver.find_elements_by_xpath(
                "//ul[@class='docs']//li//span")
            sub_menu_el[j].click()
            sub_menu_el = driver.find_elements_by_xpath(
                "//ul[@class='docs']//li//span")
            sub_m_link_name = sub_menu_el[j].text  # имя пункта главного меню
            head_title2 = driver.find_element_by_xpath(
                "//td[@id='content']//h1//span").text
            print("Link_text  : " + sub_m_link_name)
            print("Head_title : " + head_title2)
            link_array.append(sub_m_link_name)
            h1_array.append(head_title2)

    print(link_array)
    print(h1_array)
    assert len(link_array) == len(h1_array)
Esempio n. 12
0
    def test_create_raid(self):
        """raid5创建"""
        driver = self.driver
        login.test_login(self)
        driver.find_element_by_link_text(u"存储服务管理").click()
        self.driver.implicitly_wait(10)
        disk_mgmt = driver.find_element_by_link_text(u"磁盘管理")
        ActionChains(driver).move_to_element(disk_mgmt).perform()
        time.sleep(1)
        driver.find_element_by_xpath(
            ".//*[@id='toolbar']/ul/li[3]/ul/li/a").click()

        driver.find_element_by_css_selector(
            "#disktable_filter > label > input[type=\"search\"]").send_keys(
                "node-1.yyy")
        driver.find_element_by_xpath(
            ".//*[@id='disktable']/thead/tr/th[1]/div/input").click()
        raid_mgmt = driver.find_element_by_link_text(u"RAID操作")
        ActionChains(driver).move_to_element(raid_mgmt).perform()
        driver.find_element_by_link_text(u"创建RAID").click()
        Select(driver.find_element_by_id(
            "clusterraidlv")).select_by_visible_text(u"RAID5")
        time.sleep(1)
        driver.find_element_by_xpath("(//button[@type='button'])[3]").click()
        self.driver.implicitly_wait(60)
        driver.find_element_by_xpath("(//button[@type='button'])[2]").click()
        #更新磁盘
        time.sleep(2)
        driver.find_element_by_xpath(
            ".//*[@id='btclusternodedisk_update']").click()
        self.driver.implicitly_wait(10)
        driver.find_element_by_xpath("(//button[@type='button'])[2]").click()
        #删除操作
        time.sleep(5)
        driver.find_element_by_id("disktable").find_element_by_xpath(
            ".//*[@id='node-1.yyy_md10']/td[2]/dl/dd/a").click()
        self.driver.implicitly_wait(5)
        driver.find_element_by_xpath(
            ".//*[@id='ext-gen1018']/div[3]/div[3]/div/button[2]").click()
        self.driver.implicitly_wait(60)
        driver.find_element_by_xpath(
            ".//*[@id='ext-gen1018']/div[2]/div[3]/div/button").click()
Esempio n. 13
0
    def test_format_disk(self):
        """格式化磁盘"""
        driver = self.driver
        login.test_login(self)
        driver.find_element_by_link_text(u"存储服务管理").click()
        self.driver.implicitly_wait(10)
        disk_mgmt = driver.find_element_by_link_text(u"磁盘管理")
        ActionChains(driver).move_to_element(disk_mgmt).perform()
        time.sleep(1)
        driver.find_element_by_xpath(
            ".//*[@id='toolbar']/ul/li[3]/ul/li/a").click()

        driver.find_element_by_xpath(
            ".//*[@id='disktable']/thead/tr/th[1]/div/input").click()
        disk_mgmt = driver.find_element_by_link_text(u"磁盘操作")
        ActionChains(driver).move_to_element(disk_mgmt).perform()
        driver.find_element_by_link_text(u"格式化磁盘").click()

        driver.find_element_by_xpath("(//button[@type='button'])[2]").click
        self.driver.implicitly_wait(30)
        driver.find_element_by_xpath("(//button[@type='button'])").click
Esempio n. 14
0
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)
Esempio n. 15
0
def geo_zones(driver, zones_page, flag):
    if flag == 1:
        test_login(driver)
        driver.implicitly_wait(60)

    driver.get(zones_page)
    #  получим все зоны
    rows = driver.find_elements_by_xpath(
        ".//*[@id='table-zones']//tr [not(contains (@class, 'header'))]")
    zones_name = []
    for elements in rows:
        # теперь пробежим по столбцам текущего tr из цикла
        column_z = elements.find_elements_by_tag_name("td")
        zones_name.append(column_z[2].text)
    # удалим последний элемент. list.pop([i]), потому что это поле используется для фильтров
    # Удаляет i-ый элемент и возвращает его. Если индекс не указан, удаляется последний элемент
    zones_name.pop()
    # print
    print(zones_name)
    sorted_zones_list = sorted(zones_name)
    # print(sorted_zones_list)
    assert zones_name == sorted_zones_list
Esempio n. 16
0
 def test_create_user(self):
     driver = self.driver
     login.test_login(self)
     driver.find_element_by_link_text(u"存储服务管理").click()
     setup_service = driver.find_element_by_link_text(u"服务配置")
     ActionChains(driver).move_to_element(setup_service).perform()
     driver.find_element_by_link_text(u"共享用户和组").click()
     self.driver.implicitly_wait(10)
     driver.find_element_by_link_text(u"新建用户").click()
     driver.find_element_by_id("user").clear()
     driver.find_element_by_id("user").send_keys("caoyi")
     driver.find_element_by_id("comment").clear()
     driver.find_element_by_id("comment").send_keys("caoyi")
     driver.find_element_by_id("password").clear()
     driver.find_element_by_id("password").send_keys("123456")
     driver.find_element_by_id("authpassword").clear()
     driver.find_element_by_id("authpassword").send_keys("123456")
     driver.find_element_by_xpath("(//button[@type='button'])[3]").click()
     driver.find_element_by_xpath("(//button[@type='button'])[2]").click()
     driver.find_element_by_xpath(
         "//table[@id='tblusers']/tbody/tr/td/dl/dd[2]/a").click()
     driver.find_element_by_xpath("(//button[@type='button'])[3]").click()
     driver.find_element_by_xpath("(//button[@type='button'])[2]").click()
Esempio n. 17
0
 def test_login(self):
     login.test_login(self)