Esempio n. 1
0
def driver(request):
    # wd = webdriver.Chrome()
    wd = EventFiringWebDriver(webdriver.Chrome(), MyListener())
    # wd.implicitly_wait(10)
    request.addfinalizer(wd.quit)
    return wd
Esempio n. 2
0
def test_using_kwargs(driver, pages):
    ef_driver = EventFiringWebDriver(driver, AbstractEventListener())
    ef_driver.get(pages.url("javascriptPage.html"))
    ef_driver.get_cookie(name="cookie_name")
    element = ef_driver.find_element_by_id("plainButton")
    element.get_attribute(name="id")
from page.google.news import NewsGooglePage
from selenium.webdriver.support.events import EventFiringWebDriver
from webdriverwrapper.driver import WebDriver

from _corpus.retrieval.webdriverwrapper.listener import WebDriverEventListener

sys.path.append('.')

desired_capabilities = {'browserName': 'chrome'}
command_executor = "http://127.0.0.1:4444/wd/hub"
news_us = "https://news.google.com/?ned=us"  # ned=us for us edition
news_pe = "https://news.google.com/?ned=es_pe"

remote_webdriver = WebDriver(desired_capabilities=desired_capabilities,
                             command_executor=command_executor)
driver = EventFiringWebDriver(remote_webdriver, WebDriverEventListener())
google = NewsGooglePage(driver)

update = False
words = [
    "chambear", "bamba", "jama", "chancar", "chela", "papayita", "jatear",
    "jato", "tombo", "tranca", "huasca", "choborra", "cacharro", "chongo",
    "chupodromo", "fercho", "huachimán", "latear", "lompa", "mitra", "jeta",
    "moquear", "ni michi", "ñanga", "ñoba", "telo", "panudo"
]
for word in words:
    file = "pkz/" + word + ".pkz"
    if not os.path.exists(file) or update:
        google.open(news_pe)
        links = google.get_results_links(word, 1, 2, True)
        print("links:", len(links), "word:", "'" + word + "'")
Esempio n. 4
0
# Протоколирование действий Selenium
from selenium.webdriver.support.events import EventFiringWebDriver, AbstractEventListener


class MyListener(AbstractEventListener):
    def before_find(self, by, value, driver):
        print(by, value)

    def after_find(self, by, value, driver):
        print(by, value, "found")

    def on_exception(self, exception, driver):
        print(exception)


wd = EventFiringWebDriver(webdriver.Chrome(), MyListener())

# Снятие скриншотов
driver.get_screenshot_as_file('screen.png')

# Доступ к логам браузера
for l in driver.get_log("browser"):
    print(l)

# Перехват трафика
driver = webdriver.Chrome(desired_capabilities={
    "proxy": {
        "proxyType": "MANUAL",
        "httpProxy": "localhost:8888"
    }
})
Esempio n. 5
0
def driver(request):
    logger = logging.getLogger('BrowserLogger')

    browser = request.config.getoption("--browser")
    version = request.config.getoption("--bversion")
    executor = request.config.getoption("--executor")
    vnc = request.config.getoption("--vnc")
    logs = request.config.getoption("--logs")
    videos = request.config.getoption("--videos")
    executor_url = f"http://{executor}:4444/wd/hub"
    mobile = request.config.getoption("--mobile")
    is_remote = request.config.getoption("--is_remote")

    caps = {
        "browserName": browser,
        "browserVersion": version,
        "screenResolution": "1280x720",
        "name": "Tester",
        "selenoid:options": {
            "enableVNC": vnc,
            "enableVideo": videos,
            "enableLog": logs,
        },
        'acceptSslCerts': True,
        'acceptInsecureCerts': True,
        'timeZone': 'Europe/Moscow',
        'goog:chromeOptions': {
            'args': []
        }
    }

    mobile_emulation = {"deviceName": "iPhone 5/SE"}

    if is_remote:
        if browser == "chrome" and mobile:
            caps["goog:chromeOptions"]["mobileEmulation"] = mobile_emulation

        driver = wd.Remote(
            command_executor=executor_url,
            desired_capabilities=caps
        )
    else:
        if browser == "firefox":
            firefox_options = FirefoxOptions()
            firefox_options.headless = True
            driver = wd.Firefox(options=firefox_options)
        elif browser == "opera":
            opera_options = OperaOptions()
            opera_options.add_argument("headless")
            driver = wd.Opera(options=opera_options)
        elif browser == "chrome":
            chrome_options = ChromeOptions()
            # chrome_options.add_argument("headless")
            if mobile:
                chrome_options.add_experimental_option("mobileEmulation", mobile_emulation)
            driver = wd.Chrome(options=chrome_options)
        else:
            raise ValueError(f"{browser} browser not supported")

    if not mobile:
        driver.maximize_window()

    logger.info(f"Browser {browser} started.")
    driver = EventFiringWebDriver(driver, MyListener())

    # Attach browser data
    allure.attach(
        name=driver.session_id,
        body=json.dumps(driver.desired_capabilities),
        attachment_type=allure.attachment_type.JSON)

    # Add environment info to allure-report
    with open("allure-report/environment.xml", "w+") as file:
        file.write(f"""<environment>
                    <parameter>
                        <key>Browser</key>
                        <value>{browser}</value>
                    </parameter>
                    <parameter>
                        <key>Browser.Version</key>
                        <value>{version}</value>
                    </parameter>
                    <parameter>
                        <key>Executor</key>
                        <value>{executor}</value>
                    </parameter>
                </environment>
                """)

    def teardown():
        driver.quit()
        logger.info(f"Browser {browser} closed")

    request.addfinalizer(teardown)
    return driver
Esempio n. 6
0
            components = driver.find_elements_by_tag_name('label')
            print_components(components)

    def after_navigate_to(self, url, driver):
        print(url)

    def before_click(self, element, driver):
        print(f'Elemento selecionado {element.tag_name}')

    def before_quit(self, driver):
        sleep(3)


browser = Firefox()
browser.implicitly_wait(30)
wrapper_browser = EventFiringWebDriver(browser, Escuta())

url = {
    1: 'http://selenium.dunossauro.live/exercicio_07.html',
    2: 'http://selenium.dunossauro.live/exercicio_03.html'
}
"""
    Exercicio 7: pegar as mudanças nas label atraves dos eventos
"""

wrapper_browser.get(f'{url[1]}')

nome = wrapper_browser.find_element_by_id('nome')
email = wrapper_browser.find_element_by_id('email')
senha = wrapper_browser.find_element_by_id('senha')
btn = wrapper_browser.find_element_by_id('btn')
Esempio n. 7
0
from selenium import webdriver
from selenium.webdriver.support.events import EventFiringWebDriver, AbstractEventListener

class MyTestListenner(AbstractEventListener):
	def before_navigate_to(self, url, driver):
		print("前面一个执行地址 %s" % url)
	def after_navigate_to(self, url, driver):
		print("后面一个执行地址是 %s" % url)
	def on_exception(self,exception, driver):
		
		
driver = webdriver.Firefox()
el_driver = EventFiringWebDriver(driver, MyTestListenner())
el_driver.get('http://www.baidu.com')

element = driver.find_element_by_id('kw')
element.send_keys('1233455')

sorcheElement  = driver.find_element_by_id('su')
sorcheElement.click()
el_driver.back()
Esempio n. 8
0
        print("after_navigate_forward")

    def before_navigate_forward(self, driver):
        print("before_navigate_forward")

    def after_navigate_back(self, driver):
        print("after_navigate_back")

    def before_navigate_back(self, driver):
        print("before_navigate_back")

    def before_change_value_of(self, element, driver):
        print("before_change_value_of")


d = EventFiringWebDriver(b, EventListeners())

d.get('https://www.cnn.com')
d.implicitly_wait(20)
d.get('https://www.google.de')
d.implicitly_wait(20)
d.back()


def on_click(x, y, button, pressed):
    if pressed:
        print('Mouse clicked')
        time.sleep(2)
        print("Navigation to: %s " % b.current_url)

Esempio n. 9
0
def driver(request):
    wd = EventFiringWebDriver(webdriver.Chrome(), MyListener())
    request.addfinalizer(wd.quit)
    return wd
Esempio n. 10
0
    def before_click(self, elemento, webdriver):
        if elemento.tag_name == 'input':
            print(webdriver.find_element_by_tag_name('span').text)
        print(f'Antes do click {elemento.tag_name}')

    def after_click(self, elemento, webdriver):
        if elemento.tag_name == 'input':
            print(webdriver.find_element_by_tag_name('span').text)
        print(webdriver.find_element_by_tag_name('span').text)
        print(f'depois do click {elemento.tag_name}')
        

browser = Firefox(executable_path="./geckodriver")

# Wrapper do WebDriver
rapidez = EventFiringWebDriver(browser, Escuta())

rapidez.get('https://selenium.dunossauro.live/aula_07_d.html')

input_texto = rapidez.find_element_by_tag_name('input')
span = rapidez.find_element_by_tag_name('span')
p = rapidez.find_element_by_tag_name('p')

input_texto.click()


rapidez.get('https://selenium.dunossauro.live/aula_07_c.html')
rapidez.back()


Esempio n. 11
0
def driver(request):
    driver = EventFiringWebDriver(webdriver.Chrome(), MyListener())
    yield driver
    request.addfinalizer(driver.quit)
    'password': '******'
}

nav = Firefox()

nav.get('https://selenium.dunossauro.live/exercicio_07')


class Escuta(AbstractEventListener):
    def before_click(self, elem, browser):
        print(elem.find_element_by_tag_name('label').text)

    def after_click(self, elem, browser):
        print(elem.find_element_by_tag_name('label').text)


listen_nav = EventFiringWebDriver(nav, Escuta())

time.sleep(3)

fields = listen_nav.find_elements_by_css_selector('.form-group')

for ele in fields:
    field = ele.find_element_by_tag_name('input').wrapped_element
    intype = field.get_attribute('type')
    if intype == 'submit':
        field.click()
    else:
        ele.click()
        field.send_keys(dict_types[intype])
Esempio n. 13
0
def driver(request):
    wd = EventFiringWebDriver(webdriver.Chrome(), MyListener())
    wd.implicitly_wait(DEFAULT_TIMEOUT)
    request.addfinalizer(wd.quit)
    return wd
Esempio n. 14
0
 def setUp(self):
     # self.driver = webdriver.Chrome()
     self.driver = EventFiringWebDriver(webdriver.Chrome(desired_capabilities={"chromeOptions": {"args": ['--start-fullscreen']}}),MyListener())
     self.driver.get("http://localhost/litecart/admin")
     self.wait = WebDriverWait(self.driver,10)
Esempio n. 15
0
 def setUp(self):
     self.driver = webdriver.Firefox()  # Set Firefox browser
     self.driver3 = EventFiringWebDriver(self.driver, ScreenshotListener())
     self.driver.maximize_window()  # Maximize window
     time.sleep(0.30)  # Wait 30 seconds
Esempio n. 16
0
from walmart_bot import WalmartBot
# chromedriver that avoids triggering bot detection:
import undetected_chromedriver as uc
# Since undetected_chromedriver requires Chromium 87:
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.events import EventFiringWebDriver
# Contains login credentials, credit card info, and such:
import personal_info
# Listener class
from event_listeners import BotListener

options = Options()
# I have the latest build of Chromium in my selenium bot's directory:
options.binary_location = "./chrome-linux/chrome"

# Get the latest chromium build for Linux here:
# https://chromium.woolyss.com/#linux

if __name__ == "__main__":
    # Create instance of webdriver
    bot_driver = uc.Chrome(chrome_options=options)
    bot_driver.implicitly_wait(10)
    event_driver = EventFiringWebDriver(bot_driver, BotListener())
    # Create instance of bot
    bot = WalmartBot(event_driver, personal_info.walmart_profile)
    # Run bot on product page:
    bot.run(
        "https://www.walmart.com/ip/For-Raspberry-Pi-4-B-Touch-Screen-with-Case-EEEkit-3-5-inch-Touchscreen-Support-320x480-Monitor-TFT-LCD-Game-Display-for-Raspberry-Pi-4-B/430357329"
    )
Esempio n. 17
0
 def setUpClass(self):
     driver = webdriver.Chrome(
         executable_path=r'C:\Users\andrejew\PycharmProjects\chromedriver')
     self.base_url = 'https://autodemo.testoneo.com/en/'
     self.xpath_search_box = '//*[@class = "ui-autocomplete-input"]'
     self.ef_driver = EventFiringWebDriver(driver, ScreenshotListener())
Esempio n. 18
0
 def setUpClass(cls):
     edriver = webdriver.Chrome(
         executable_path=TestData.CHROME_EXECUTABLE_PATH)
     cls.driver = EventFiringWebDriver(edriver, ScreenshotListener())
     cls.driver.maximize_window()
     cls.driver.implicitly_wait(20)
Esempio n. 19
0
from selenium.webdriver import Firefox
from selenium.webdriver.support.events import EventFiringWebDriver, AbstractEventListener
import time
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys


class MyListener(AbstractEventListener):
    def before_navigate_to(self, url, driver):
        print("Before navigate to %s" % url)

    def after_navigate_to(self, url, driver):
        print("After navigate to %s" % url)


driver = Firefox()
ef_driver = EventFiringWebDriver(driver, MyListener())
ef_driver.get("https://zoom.earth/#-4.810966,32.244757,19z,sat")

try:
    browser.get(url)
    browser.get_screenshot_as_file(filename)
finally:
    browser.quit()
Esempio n. 20
0
 def setUp(self):
     self.driver = super().run_driver()
     self.driver = EventFiringWebDriver(
         self.driver, ScreenshotListener(self._testMethodName))
     LoginPage(self.driver).login_as_super_admin()
Esempio n. 21
0
    def after_close(self, driver):
        print "Depois de fechar a pagina"

    def on_exception(self, exeception, driver):
        print "Ocorreu um erro"


if __name__ == '__main__':
    # instancia do navegador
    firefox = webdriver.Firefox()

    # instancia do listener
    listener = MyListener()

    # instancia do navegador com os eventos monitorados
    ef_firefox = EventFiringWebDriver(firefox, listener)

    # abrir página da python club
    ef_firefox.get('http://pythonclub.com.br/')

    try:
        """
            Propositalmente irá gerar uma exception pois a classe não existe.
            O evento "on_exception" deve ser chamado
        """
        post = ef_firefox.find_element_by_class_name('post-tile')
    except:
        pass

    # localizamos o primeiro post
    post = ef_firefox.find_element_by_class_name('post-title')
Esempio n. 22
0
    def setUp(self):
        self.driver = EventFiringWebDriver(webdriver.Chrome(), MyListener())
        driver = self.driver

        run = nf.setUp_func(driver, server)
Esempio n. 23
0
 def add_event_listener(
         self, listener: AbstractEventListener) -> SeleniumDriverType:
     self.driver = EventFiringWebDriver(self.driver, listener)
     return self
Esempio n. 24
0
 def setUp(self):
     self.driver = super().run_driver()
     self.driver = EventFiringWebDriver(
         self.driver, ScreenshotListener(self._testMethodName))
Esempio n. 25
0
 def _wrap_event_firing_webdriver(self, driver):
     if not self.ctx.event_firing_webdriver:
         return driver
     self.debug('Wrapping driver to event_firing_webdriver.')
     return EventFiringWebDriver(driver, self.ctx.event_firing_webdriver())
Esempio n. 26
0
    def after_click(self, element, webdriver):
        nome = webdriver.find_element_by_id("lnome").text
        email = webdriver.find_element_by_id("lemail").text
        senha = webdriver.find_element_by_id("lsenha").text

        if nome != "nome:":
            nome_text.append(nome)

        if email != "email:":
            email_text.append(email)

        if senha != "senha:":
            senha_text.append(senha)


wraperBroswer = EventFiringWebDriver(driver, Escutando())
wraperBroswer.get(url)

sleep(4)
nome = wraperBroswer.find_element_by_id("nome")
nome.send_keys("Alison")
nome.click()

email = wraperBroswer.find_element_by_id("email")
email.send_keys("*****@*****.**")
email.click()

senha = wraperBroswer.find_element_by_id("senha")
senha.send_keys("123456")
senha.click()
Esempio n. 27
0
def chrome_browser(request):
    options = webdriver.ChromeOptions()
    options.add_argument("start-maximized")
    wd = EventFiringWebDriver(webdriver.Chrome(), MyListener())
    request.addfinalizer(wd.quit)
    return wd
Esempio n. 28
0
from selenium import webdriver
from selenium.webdriver.support.events import EventFiringWebDriver
from mylistener import MyListener

chrome = webdriver.Chrome()
listener = MyListener()

ef_chrome = EventFiringWebDriver(chrome, listener)

ef_chrome.get('http://pythonclub.com.br')

try:
    """
        Propositalmente ira gerar uma exception pois a classe nao existe.
        O evento "on_exception" deve ser chamado
    """
    post = ef_chrome.find_element_by_class_name('post-title')
except:
    pass

post = ef_chrome.find_element_by_class_name('post-tile')
post.click()

ef_chrome.close()