Example #1
0
def log_in(driver, login, password):
	driver.get('http://online.aviso.ua/account2/index.php')
	if not support.wait_for_load(driver, "#inputEmail", 10):
		raise NoSuchElementException()
	support.move_mouse(driver, driver.find_element_by_id('inputEmail'))
	support.send_text(driver.find_element_by_id('inputEmail'), login)
	support.move_mouse(driver, driver.find_element_by_id('inputPassword'))
	support.send_text(driver.find_element_by_id('inputPassword'), password)
	support.move_mouse(driver, driver.find_element_by_css_selector(".controls button"))
	if not support.wait_for_load(driver, ".span8 li:nth-child(3) a", 40):
		raise Exception(ErrorMessage.login)
Example #2
0
def test_fn(login, password, driver):
    driver.get("http://fn.ua/user/")
    if not support.wait_for_load(driver, "#uemail", 3):
        return "Nope"
    support.move_mouse(driver, driver.find_element_by_id("uemail"))
    support.send_text(driver.find_element_by_id("uemail"), login)
    support.move_mouse(driver, driver.find_element_by_id("upass"))
    support.send_text(driver.find_element_by_id("upass"), password)
    support.move_mouse(driver, driver.find_element_by_name("go_auth"))
    if not support.wait_for_load(driver, "a[href='/newad/']", 15):
        return "Nope"
    return "Yep"
Example #3
0
def test_olx(login, password, driver):
    driver.get("https://ssl.olx.ua/account/")
    if not support.wait_for_load(driver, "#userEmail", 3):
        return "Nope"
    support.move_mouse(driver, driver.find_element_by_id("userEmail"))
    support.send_text(driver.find_element_by_id("userEmail"), login)
    support.move_mouse(driver, driver.find_element_by_id("userPass"))
    support.send_text(driver.find_element_by_id("userPass"), password)
    support.move_mouse(driver, driver.find_element_by_id("se_userLogin"))
    if not support.wait_for_load(driver, "#topLoginLink > .arrowthindown", 15):
        return "Nope"
    return "Yep"
Example #4
0
def log_in(driver, login, password):
    driver.get("https://ssl.olx.ua/account/")
    time.sleep(2)
    if not support.wait_for_load(driver, "#userEmail", 8):
        raise NoSuchElementException()
        # authorization ------------------------------------------------------
    support.move_mouse(driver, driver.find_element_by_id("userEmail"))
    support.send_text(driver.find_element_by_id("userEmail"), login)
    support.move_mouse(driver, driver.find_element_by_id("userPass"))
    support.send_text(driver.find_element_by_id("userPass"), password)
    support.move_mouse(driver, driver.find_element_by_id("se_userLogin"))
    if not support.wait_for_load(driver, "#topLoginLink > .arrowthindown", 15):
        raise Exception(ErrorMessage.login)
Example #5
0
def test_mir(login, password, driver):
    driver.get("http://mirkvartir.ua/users/login")
    if not support.wait_for_load(driver, "#user_login", 5):
        return "Nope"
        # authorization ------------------------------------------------------
    support.move_mouse(driver, driver.find_element_by_id("user_login"))
    support.send_text(driver.find_element_by_id("user_login"), login)
    support.move_mouse(driver, driver.find_element_by_id("user_password"))
    support.send_text(driver.find_element_by_id("user_password"), password)
    support.move_mouse(driver, driver.find_element_by_id("submit"))
    time.sleep(2)
    if not support.wait_for_load(driver, "#add_notice", 15):
        return "Nope"
    return "Yep"
Example #6
0
def test_aviso(login, password, driver):
    COUNTER_TIMES = 5
    SLEEP_TIME = 1

    driver.get("http://online.aviso.ua/account2/index.php")
    if not support.wait_for_load(driver, "#inputEmail", 10):
        return "Nope"
    support.move_mouse(driver, driver.find_element_by_id("inputEmail"))
    support.send_text(driver.find_element_by_id("inputEmail"), login)
    support.move_mouse(driver, driver.find_element_by_id("inputPassword"))
    support.send_text(driver.find_element_by_id("inputPassword"), password)
    support.move_mouse(driver, driver.find_element_by_css_selector(".controls button"))
    if not support.wait_for_load(driver, ".span8 li:nth-child(3) a", 40):
        return "Nope"
    return "Yep"
Example #7
0
def post(self, login, password, driver, write, id):
    # variables -----------------------------------------
    try:
        adv_type = int(self["adv_type"])
        category = int(self["building"][0])
        try:
            subcategory = int(self["building"][1]) + 1
        except:
            subcategory = 0
        currency = int(self["currency"]) + 1
        if self["type"] == "":
            house_type = 0
        else:
            house_type = int(self["type"]) + 1
        loc1 = int(self["location"][0])
        loc2 = 9 - int(self["location"][1])
        district = Map_olx_directs[loc1][loc2]
        if self["location"][2] == "":
            city = Map_olx_city[loc1][loc2]
        else:
            city = self["location"][2]

        map_address = city + u", Киевская область"
    except:
        raise Exception(ErrorMessage.fields)
        # start	--------------------------------------------------
    try:
        log_in(driver, login, password)
        time.sleep(2)
        write.publish(
            "response_" + id, json.dumps({"progress": "25%", "message": PostingMessage.post_p25})
        )  # ------------------------message---------------------------
        # add -----------------------------------------------------------------
        if not support.wait_for_load(driver, "#postNewAdLink", 10):
            raise NoSuchElementException()
        support.move_mouse(driver, driver.find_element_by_id("postNewAdLink"))
        time.sleep(2)
        # title ----------------------------------------------------------------
        if not support.wait_for_load(driver, "#add-title", 10):
            raise NoSuchElementException()
        support.move_mouse(driver, driver.find_element_by_id("add-title"))
        driver.find_element_by_id("add-title").send_keys(self["title"])
        time.sleep(2)
        support.move_mouse(driver, driver.find_element_by_id("targetrenderSelect1-0"))
        # select catecory -----------------------------------------------------------------------
        if not support.wait_for_load(driver, "#cat-1", 15):
            raise NoSuchElementException()
        support.move_mouse(driver, driver.find_element_by_id("cat-1"))
        if not support.wait_for_load(
            driver, '#category-1 a[data-category="' + chose_flat[adv_type][category] + '"]', 2
        ):
            raise NoSuchElementException()
        support.move_mouse(
            driver,
            driver.find_element_by_css_selector(
                '#category-1 a[data-category="' + chose_flat[adv_type][category] + '"]'
            ),
        )

        if support.wait_for_load(
            driver, "#category-" + chose_flat[adv_type][category] + " li:nth-child(" + str(subcategory) + ")", 2
        ):
            support.move_mouse(
                driver,
                driver.find_element_by_css_selector(
                    "#category-" + chose_flat[adv_type][category] + " li:nth-child(" + str(subcategory) + ")"
                ),
            )
        if not support.wait_for_load(driver, "#parameter-div-price input.text", 10):
            raise NoSuchElementException()
        write.publish(
            "response_" + id, json.dumps({"progress": "50%", "message": PostingMessage.post_p50})
        )  # ------------------------message---------------------------
        # price ----------------------------------------------
        driver.execute_script(
            "document.getElementById('targetid_private_business').getElementsByTagName('dd')[0].getElementsByTagName('ul')[0].style.display = 'block';"
        )
        support.move_mouse(driver, driver.find_element_by_css_selector("#parameter-div-price input.text"))
        support.send_text(driver.find_element_by_css_selector("#parameter-div-price input.text"), self["price"])
        support.move_mouse(driver, driver.find_element_by_css_selector("#parameter-div-price dl dt a"))
        support.move_mouse(
            driver, driver.find_element_by_css_selector("#parameter-div-price dl li:nth-child(" + str(currency) + ")")
        )
        # options -------------------------------------------------------------------------------------
        if category in (0, 2):
            if support.wait_for_load(driver, "#parameter-div-number_of_rooms input", 1):
                support.move_mouse(driver, driver.find_element_by_css_selector("#parameter-div-number_of_rooms input"))
                support.send_text(
                    driver.find_element_by_css_selector("#parameter-div-number_of_rooms input"), self["rooms"]
                )
            if support.wait_for_load(driver, "#parameter-div-total_area input", 1):
                support.move_mouse(driver, driver.find_element_by_css_selector("#parameter-div-total_area input"))
                support.send_text(
                    driver.find_element_by_css_selector("#parameter-div-total_area input"), self["space"][0]
                )
            if support.wait_for_load(driver, "#parameter-div-total_living_area input", 1):
                support.move_mouse(
                    driver, driver.find_element_by_css_selector("#parameter-div-total_living_area input")
                )
                support.send_text(
                    driver.find_element_by_css_selector("#parameter-div-total_living_area input"), self["space"][1]
                )
            if support.wait_for_load(driver, "#parameter-div-kitchen_area input", 1):
                support.move_mouse(driver, driver.find_element_by_css_selector("#parameter-div-kitchen_area input"))
                support.send_text(
                    driver.find_element_by_css_selector("#parameter-div-kitchen_area input"), self["space"][2]
                )
            if house_type and support.wait_for_load(driver, "#parameter-div-house_type dl dt a", 1):
                support.move_mouse(driver, driver.find_element_by_css_selector("#parameter-div-house_type dl dt a"))
                support.move_mouse(
                    driver,
                    driver.find_element_by_css_selector(
                        "#parameter-div-house_type dl li:nth-child(" + str(house_type) + ")"
                    ),
                )
            if support.wait_for_load(driver, "#parameter-div-floor input", 1):
                support.move_mouse(driver, driver.find_element_by_css_selector("#parameter-div-floor input"))
                support.send_text(driver.find_element_by_css_selector("#parameter-div-floor input"), self["floor"][0])
            if support.wait_for_load(driver, "#parameter-div-total_floors input", 1):
                support.move_mouse(driver, driver.find_element_by_css_selector("#parameter-div-total_floors input"))
                support.send_text(
                    driver.find_element_by_css_selector("#parameter-div-total_floors input"), self["floor"][1]
                )
            if support.wait_for_load(driver, "#parameter-div-rent_from input", 1):
                support.move_mouse(driver, driver.find_element_by_css_selector("#parameter-div-rent_from input"))
                support.send_text(
                    driver.find_element_by_css_selector("#parameter-div-rent_from input"), self["rent_from"]
                )
            if support.wait_for_load(driver, "#parameter-div-total_rooms_in_flat input", 1):
                support.move_mouse(
                    driver, driver.find_element_by_css_selector("#parameter-div-total_rooms_in_flat input")
                )
                support.send_text(
                    driver.find_element_by_css_selector("#parameter-div-total_rooms_in_flat input"), self["rooms"]
                )
        if category in (1, 3):
            support.move_mouse(driver, driver.find_element_by_css_selector("#parameter-div-distance_from_city input"))
            support.send_text(
                driver.find_element_by_css_selector("#parameter-div-distance_from_city input"), self["remote"]
            )
            if support.wait_for_load(driver, "#parameter-div-land_area input", 1):
                support.move_mouse(driver, driver.find_element_by_css_selector("#parameter-div-land_area input"))
                support.send_text(
                    driver.find_element_by_css_selector("#parameter-div-land_area input"), self["space"][0]
                )
            if support.wait_for_load(driver, "#parameter-div-house_area input", 1):
                support.move_mouse(driver, driver.find_element_by_css_selector("#parameter-div-house_area input"))
                support.send_text(
                    driver.find_element_by_css_selector("#parameter-div-house_area input"), self["space"][0]
                )
        if category == 5:
            support.move_mouse(driver, driver.find_element_by_css_selector("#parameter-div-area input"))
            support.send_text(driver.find_element_by_css_selector("#parameter-div-area input"), self["space"][0])
            # descriptions + personal ------------------------------------------------------------------------
            # support.move_mouse(driver, driver.find_element_by_css_selector('#private-business-div dl dt a'))
            # support.move_mouse(driver, driver.find_element_by_css_selector('#private-business-div dl li:nth-child(2) a'))
        driver.find_element_by_css_selector("#targetid_private_business dt a").click()
        driver.find_element_by_css_selector("#private-business-div dl li:nth-child(2) a").click()
        support.move_mouse(driver, driver.find_element_by_css_selector("#add-description"))
        driver.find_element_by_css_selector("#add-description").send_keys(
            self["description"] + " z " + str(int(round(time.time() * 1000)))
        )
        write.publish(
            "response_" + id, json.dumps({"progress": "75%", "message": PostingMessage.post_p75})
        )  # ------------------------message---------------------------
        # imeges ---------------------------------------------------
        support.move_mouse(driver, driver.find_element_by_css_selector("#show-gallery-html"))
        for idx, val in enumerate(self["img_src"]):
            if support.wait_for_load(driver, "#htmlbutton_" + str(idx + 1) + " input", 1):
                driver.find_element_by_css_selector("#htmlbutton_" + str(idx + 1) + " input").send_keys(
                    self["_id"] + val
                )
                # locations --------------------------------------------------------------------------
        attempt = 0
        while attempt < 5:
            try:
                support.move_mouse(driver, driver.find_element_by_css_selector("#mapAddress"))
                driver.find_element_by_css_selector("#mapAddress").clear()
                support.send_text_long(driver.find_element_by_css_selector("#mapAddress"), map_address)
                time.sleep(0.5)
                if loc1 == 1:
                    if support.wait_for_load(driver, "#autosuggest-geo-ul li:nth-child(1) > a", 2):
                        support.move_mouse(
                            driver, driver.find_element_by_css_selector("#autosuggest-geo-ul li:nth-child(1) > a")
                        )
                    else:
                        raise Exception(ErrorMessage.location)
                if loc1 == 0:
                    if support.wait_for_load(driver, "#autosuggest-geo-ul li:nth-child(1) > a", 2):
                        driver.execute_script(
                            'document.getElementById("autosuggest-geo-ul").getElementsByTagName("li")[0].className = "hover"'
                        )
                        time.sleep(1)
                        driver.execute_script(
                            'document.getElementById("autosuggest-geo-ul").getElementsByTagName("li")[0].className = "hover"'
                        )
                        driver.find_element_by_css_selector(
                            "#autosuggest-geo-ul li:nth-child(1) > .geo-districts-ul li:nth-child("
                            + str(loc2 + 1)
                            + ") > a"
                        ).click()
                    else:
                        raise Exception(ErrorMessage.location)
            except:
                attempt += 1
            else:
                break
        if attempt >= 5:
            raise Exception(ErrorMessage.location)
            # phone + skype + name ----------------------------------------------------------------------
        support.move_mouse_dc(driver, driver.find_element_by_css_selector("#add-person"))
        support.send_text(driver.find_element_by_css_selector("#add-person"), self["per_name"])
        support.move_mouse_dc(driver, driver.find_element_by_css_selector("#add-phone"))
        support.send_text(driver.find_element_by_css_selector("#add-phone"), self["per_telephone"])
        support.move_mouse_dc(driver, driver.find_element_by_css_selector("#add-skype"))
        support.send_text(driver.find_element_by_css_selector("#add-skype"), self["skype"])
        write.publish(
            "response_" + id, json.dumps({"progress": "100%", "message": PostingMessage.post_p100})
        )  # ------------------------message---------------------------
        # save+screenshot-------------------------------------------------------------
        driver.save_screenshot(self["_id"] + "report_olx_ua.png")
        time.sleep(2)
        write.publish(
            "response_" + id,
            json.dumps({"progress": "100%", "message": PostingMessage.rander(self["_id"] + "report_olx_ua.png")}),
        )
        attempt = 0
        while attempt < 5:
            try:
                driver.find_element_by_css_selector("#save").click()
                time.sleep(4)
                if not support.wait_for_load(driver, "#addAnotherAd", 20):
                    driver.save_screenshot(self["_id"] + "report_olx_ua.png")
                    logout(driver)
                    raise Exception(ErrorMessage.wrong)
                driver.save_screenshot(self["_id"] + "report_olx_ua.png")
                break
            except:
                attempt += 1
        logout(driver)
    except NoSuchElementException, InvalidElementStateException:
        driver.save_screenshot(self["_id"] + "report_olx_ua.png")
        logout(driver)
        raise Exception(ErrorMessage.change)
Example #8
0
def post(self, login, password, driver, write, id):
	COUNT_TIMES = 10
	
	try:	
		log_in(driver, login, password)
		time.sleep(2)		
		per_tel = self['per_telephone'][1:]
		write.publish("response_" + id, json.dumps({"progress": "25%","message": PostingMessage.post_p25}))#------------------------message---------------------------
		support.move_mouse(driver, driver.find_element_by_css_selector(".span8 li:nth-child(3) a"))
		if not support.wait_for_load(driver, ".form-horizontal label:nth-child(1)", 20):
			driver.save_screenshot(self["_id"] + 'report_aviso.png')
			logout(driver)
			raise NoSuchElementException()
		support.move_mouse(driver, driver.find_element_by_css_selector(".form-horizontal label:nth-child(1)"))
		support.move_mouse(driver, driver.find_element_by_css_selector(".form-horizontal button"))

		n1 = choose_section[int(self["adv_type"])][int(self["building"][0])]
		#if self["adv_type"] == '0' and self["building"][0] in ('0', '2') and self["building"][1] == '2':
		#	n1 = '4'	 
		n2 = 1
		if self["building"][0] in ('1','3'):
			n2 = int(self["building"][0])
			if self["building"][0] == '3':
				n2 = 2
		if self["location"][0] == '0':
			n3 = int(self["location"][1]) + 1
		else:
			n3 = int(self["location"][1]) + 12
		if n3 > 36 - 25 * (1 ^ int(self["adv_type"])):
			n3 = 37 - 26 * (1 ^  int(self["adv_type"]))
		n4 = currency[int(self["currency"])]
		n5 = (int(self["rooms"]) + 1)	if self['rooms'] != '' else 0
		print n5
		if n5 > 6:
			n5 = 6
		if not support.wait_for_load(driver, ".form-horizontal label:nth-child(" + n1 + ")", 10):
			driver.save_screenshot(self["_id"] + 'report_aviso.png')
			logout(driver)
			raise NoSuchElementException()
		support.move_mouse(driver, driver.find_element_by_css_selector(".form-horizontal label:nth-child(" + n1 + ")"))
		support.move_mouse(driver, driver.find_element_by_css_selector(".form-horizontal button[type='submit']"))

		if not support.wait_for_load(driver, ".form-horizontal label:nth-child(" + str(n2) + ")", 10):
			driver.save_screenshot(self["_id"] + 'report_aviso.png')
			logout(driver)
			raise NoSuchElementException()
		support.move_mouse(driver, driver.find_element_by_css_selector(".form-horizontal label:nth-child(" + str(n2) + ")"))
		support.move_mouse(driver, driver.find_element_by_css_selector(".form-horizontal button[type='submit']"))
		write.publish("response_" + id, json.dumps({"progress": "50%","message": PostingMessage.post_p50}))#------------------------message---------------------------
		if not support.wait_for_load(driver, "input[name='ad_title']", 20):
			driver.save_screenshot(self["_id"] + 'report_aviso.png')
			logout(driver)
			raise NoSuchElementException()
		support.move_mouse(driver, driver.find_element_by_css_selector("input[name='ad_title']"))
		support.send_text(driver.find_element_by_css_selector('input[name="ad_title"]'), self["title"])

		support.move_mouse(driver, driver.find_element_by_css_selector("textarea[name='ad_text']"))
		support.send_text(driver.find_element_by_css_selector('textarea[name="ad_text"]'), self["description"])
		if support.wait_for_load(driver, '#adDistrict', 2):
			support.move_mouse(driver, driver.find_element_by_css_selector('#adDistrict'))
			driver.find_element_by_css_selector('#adDistrict option[value="' + str(n3) + '"]').click()

		support.move_mouse(driver, driver.find_element_by_css_selector("input[name='ad_price']"))
		support.send_text(driver.find_element_by_css_selector('input[name="ad_price"]'), self["price"])

		support.move_mouse(driver, driver.find_element_by_css_selector("select[name='ad_currency']"))
		driver.find_element_by_css_selector('select[name="ad_currency"] option[value="' + str(n4) + '"]').click()

		if self["building"][0] == '0':
			support.move_mouse(driver, driver.find_element_by_xpath("//*[@id='adRooms']"))
			driver.find_element_by_css_selector('#adRooms option:nth-child(' + str(n5) + ')').click()
	
			support.move_mouse(driver, driver.find_element_by_css_selector("input[name='space_all']"))
			support.send_text(driver.find_element_by_css_selector('input[name="space_all"]'), self["space"][0])
			support.move_mouse(driver, driver.find_element_by_css_selector("input[name='space_live']"))
			support.send_text(driver.find_element_by_css_selector('input[name="space_live"]'), self["space"][1])
			support.move_mouse(driver, driver.find_element_by_css_selector("input[name='space_kitch']"))
			support.send_text(driver.find_element_by_css_selector('input[name="space_kitch"]'), self["space"][2])

			support.move_mouse(driver, driver.find_element_by_css_selector("input[name='floor']"))
			support.send_text(driver.find_element_by_css_selector('input[name="floor"]'), self["floor"][0])
			support.move_mouse(driver, driver.find_element_by_css_selector("input[name='floors']"))
			support.send_text(driver.find_element_by_css_selector('input[name="floors"]'), self["floor"][1])
		if self["building"][0] == '1':
			support.move_mouse(driver, driver.find_element_by_css_selector("input[name='space_all']"))
			support.send_text(driver.find_element_by_css_selector('input[name="space_all"]'), self["space"][0])
			if self["adv_type"] == '1':
				support.move_mouse(driver, driver.find_element_by_css_selector("input[name='space_live']"))
				support.send_text(driver.find_element_by_css_selector('input[name="space_live"]'), self["space"][1])
				support.move_mouse(driver, driver.find_element_by_css_selector("input[name='floors']"))
				support.send_text(driver.find_element_by_css_selector('input[name="floors"]'), self["floor"][1])
		if self["building"][0] == '3':
			support.move_mouse(driver, driver.find_element_by_css_selector("input[name='space_all']"))
			support.send_text(driver.find_element_by_css_selector('input[name="space_all"]'), self["space"][0])
		write.publish("response_" + id, json.dumps({"progress": "75%","message": PostingMessage.post_p75}))#------------------------message---------------------------
		support.move_mouse(driver, driver.find_element_by_css_selector("input[name='op_code1']"))
		support.send_text(driver.find_element_by_css_selector('input[name="op_code1"]'), per_tel[:2])
		support.move_mouse(driver, driver.find_element_by_css_selector("input[name='phone_num1']"))
		support.send_text(driver.find_element_by_css_selector('input[name="phone_num1"]'), per_tel[2:9])
		support.move_mouse(driver, driver.find_element_by_css_selector("#inputContact"))
		support.send_text(driver.find_element_by_css_selector('#inputContact'), self["per_name"])
		support.move_mouse(driver, driver.find_element_by_css_selector(".form-horizontal button[type='submit']"))

		if not support.wait_for_load(driver, "input[type='file']", 40):
			raise NoSuchElementException()
			driver.save_screenshot(self["_id"] + 'report_aviso.png')
			logout(driver)
		for src in self["img_src"]:	
			try:
				support.send_text(driver.find_element_by_css_selector("input[type='file']"), self["_id"] + src)
			 	support.move_mouse(driver, driver.find_element_by_css_selector("input[type='submit']"))
			except:
				time.sleep(5)
		if not support.wait_for_load(driver, ".btn-large", 10):
			driver.save_screenshot(self["_id"] + 'report_aviso.png')
			logout(driver)
			raise NoSuchElementException()
		support.move_mouse(driver, driver.find_element_by_css_selector(".btn-large"))	
		if not support.wait_for_load(driver, ".btn-warning", 10):
			driver.save_screenshot(self["_id"] + 'report_aviso.png')
			logout(driver)
			raise NoSuchElementException()
		support.move_mouse(driver, driver.find_element_by_css_selector(".btn-warning"))
		print "Done!"
		write.publish("response_" + id, json.dumps({"progress": "100%","message": PostingMessage.post_p100})) #------------------------message---------------------------
		write.publish("response_" + id, json.dumps({"progress": "100%","message": PostingMessage.rander(self["_id"] + 'report_aviso.png')}))	
		logout(driver)
	except NoSuchElementException, InvalidElementStateException:
		#driver.save_screenshot(self[self["_id"]] + 'report_mirkvartir.png')
		driver.save_screenshot(self["_id"] + 'report_aviso.png')
		logout(driver)
		print 'picture'
		raise Exception(ErrorMessage.change)