Exemplo n.º 1
0
class SawFirst:
    def __init__(self, url):
        self.driver = Edge(executable_path=PATH)
        self.driver.get(url)

    def _get_links(self, s):
        links = self.driver.find_elements_by_xpath('//a')
        sorted_links = [link for link in links if link.text.find(s, 0) != -1]
        return sorted_links

    def go_to_page(self, s):
        # for link in self._get_links(s):
        #     link.click()
        link = self._get_links(s)[0]
        link.click()
        time.sleep(2)
        try:
            gallery = self.driver.find_element_by_id('gallery-1')
            image_links = gallery.find_elements_by_tag_name('a')
        except Exception:
            pass
        else:
            time.sleep(1)
            image_links[0].click()
            ui.WebDriverWait(self.driver, 3000).until(
                expected_conditions.element_to_be_clickable(
                    (By.CLASS_NAME, 'featured-image2')))
            self.driver.find_element_by_class_name('featured-image2')
Exemplo n.º 2
0
class SeleniumRuntime:
    """
    This class works like a singleton containing a single instance of the browser environment

    Attributes:
        logger: logger instance gathered from logging module, acts like a singleton
    """
    def __init__(self):
        self.logger = logging.getLogger(LOGGER_INSTANCE)

        if TARGET_BROWSER == 'chrome':
            self.browser = Chrome()
        elif TARGET_BROWSER == 'firefox':
            self.browser = Firefox()
        elif TARGET_BROWSER == 'edge':
            self.browser = Edge()

    def go_to_page(self, url):
        self.browser.get(url)

    def submit_form(self):
        form = self.browser.find_element_by_tag_name('form')
        form.submit()

    def fill_form(self, table):
        for field, value in table.items():
            element = self.browser.find_element_by_id(field)
            element.clear()
            element.send_keys(value)

    def fill_selects(self, table):
        for field_name, field_value in table.items():
            self.wait_for_element(field_value, By.XPATH).click()

    def click(self, value, by=By.ID):
        element = self.browser.find_element(by, value)
        element.click()

    def get_element(self, value, by=By.ID):
        return self.browser.find_element(by, value)

    def get_elements(self, value, by=By.ID):
        return self.browser.find_elements(by, value)

    def assert_presence(self, value, by=By.ID):
        try:
            self.browser.find_element(by, value)
            return True
        except NoSuchElementException:
            return False

    def back(self):
        self.browser.back()

    def forward(self):
        self.browser.forward()

    def refresh(self):
        self.browser.refresh()

    def current_title(self):
        return self.browser.title

    def current_url(self):
        return self.browser.current_url

    def wait_for_element(self, value, by=By.ID, timeout=30):
        return WebDriverWait(self.browser, timeout).until(
            expected_conditions.presence_of_element_located((by, value)))

    def wait_for_redirect(self, target_url, timeout=30):
        return WebDriverWait(self.browser, timeout).until(
            expected_conditions.url_to_be(target_url))

    @staticmethod
    def assert_class(element, class_name):
        class_attr = element.get_attribute('class')
        return class_attr.find(class_name) >= 0

    @staticmethod
    def assert_attribute(element, attribute_name, attribute_value):
        attr_value = element.get_attribute(attribute_name)
        return attr_value.find(attribute_value) >= 0
Exemplo n.º 3
0
import shutil
# Open Edge instance for navigation
ref_time = time.time()

# driver = Edge(executable_path=r"C:\Users\Eric\Desktop\Coding Stuff\SD_Code\SD_Auto_Driver_Install\edgedriver_win64\msedgedriver.exe")
driver = Edge(executable_path=r"edgedriver_win64\msedgedriver.exe")
# Navigate to specified website
driver.get("https://www.nvidia.com/Download/index.aspx?lang=en-in")
time.sleep(5)

#This block of code sets all the dropdown menus to the correct selections
#==============================================================================================

# Store product type drop down menu as object and Select GeForce from dropdown menu
product_type_selector = Select(
    driver.find_element_by_id('selProductSeriesType'))
product_type_selector.select_by_value('1')

product_series_selector = Select(driver.find_element_by_id('selProductSeries'))
product_series_selector.select_by_visible_text('GeForce RTX 30 Series')

download_type_selector = Select(
    driver.find_element_by_id('ddlDownloadTypeCrdGrd'))
download_type_selector.select_by_visible_text('Game Ready Driver (GRD)')

download_language_selector = Select(driver.find_element_by_id('ddlLanguage'))
download_language_selector.select_by_value('1')

# Clicks button to search for driver
search_button = driver.find_element_by_xpath(
    "//a[@href='javascript: GetDriver();']")