Пример #1
0
def setup(browser):
    if browser == 'chromeheadless':
        from selenium.webdriver.chrome.options import Options
        chromeoptions = Options()
        chromeoptions.headless = True
        driver = webdriver.Chrome(options=chromeoptions)
    elif browser == 'ffheadless':
        from selenium.webdriver.firefox.options import Options
        ffoptions = Options()
        ffoptions.headless = True
        driver = webdriver.Firefox(options=ffoptions)
    elif browser == 'edgeheadless':
        from msedge.selenium_tools import Edge, EdgeOptions
        options = EdgeOptions()
        options.use_chromium = True
        options.add_argument("--headless")
        driver = Edge(options=options)
    # elif browser == 'vivaldi':
    #     opt = Options()
    #     opt.binary_location = r'C:\Users\Dana Scully\AppData\Local\Vivaldi\Application\vivaldi.exe'
    #     driver = webdriver.Chrome(options=opt)
    #cant get to work
    else: #default
        driver = webdriver.Chrome()

    return driver
Пример #2
0
def init_driver_edge_windows():
    edge_options = EdgeOptions()
    edge_options.use_chromium = True
    #edge_options.add_argument('headless')
    #edge_options.add_argument('disable-gpu')
    try:
        return Edge(executable_path=r"./driver/msedgedriver",
                    options=edge_options)
    except:
        if os.path.isdir("driver"):
            subprocess.call(["rd" "/s" "/q", "driver"], shell=True)
        os.mkdir("driver")
        try:
            keyPath = r"Software\Microsoft\Edge\BLBeacon"
            key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, keyPath, 0,
                                 winreg.KEY_READ)
            edge_version = winreg.QueryValueEx(key, "version")[0]
            OS = "64" if 'PROGRAMFILES(X86)' in os.environ else "32"
            subprocess.call([
                "curl", "-o", "tmp.zip",
                f"https://msedgedriver.azureedge.net/{edge_version}/edgedriver_win{OS}.zip"
            ])
            subprocess.call(["tar", "-xf", "tmp.zip"])
            subprocess.call(["del", "tmp.zip"], shell=True)
            subprocess.call(["move", "msedgedriver.exe", "driver"], shell=True)
            subprocess.call(["rd" "/s" "/q", "Driver_Notes"], shell=True)
            return Edge(executable_path=r".\driver\msedgedriver.exe",
                        options=edge_options)
        except:
            os.rmdir("driver")
            raise NotImplementedError(
                'Une erreur a été rencontrée. Cela peut avoir été causé par une version de Edge obsolète. Mettez le navigateur à jour.'
            )
    def test_webview_options_to_capabilities(self):
        options = EdgeOptions()
        options.use_chromium = True
        options.use_webview = True

        cap = options.to_capabilities()
        self.assertEqual('webview2', cap['browserName'])
Пример #4
0
 def __init__(self, username, password, sleep_time=2):
     self.username = username
     self.password = password
     self.sleep_time = sleep_time
     options = EdgeOptions()
     options.use_chromium = True
     self.driver = Edge(options=options)
Пример #5
0
def Restart_Modem():
    options = EdgeOptions()
    options.use_chromium = True
    options.add_argument("-inprivate")
    edge_browser = Edge(options=options)
    edge_browser.get('http://192.168.0.1')
    time.sleep(2)
    print('Welcome')
    try:
        login = edge_browser.find_element_by_name('username')
        password = edge_browser.find_element_by_name('password')
        sign = edge_browser.find_element_by_class_name('styled_button_s')
        login.clear()
        password.clear()
        login.send_keys('admin')
        password.send_keys('admin')
        time.sleep(2)
        sign.click()
        print('Sign in')
        alert = Alert(edge_browser)
        time.sleep(2)
        edge_browser.get('http://192.168.0.1/saveconf.htm')
        time.sleep(2)
        system = edge_browser.find_element_by_id('three_level_menu1')
        system.click()
        time.sleep(2)
        reboot = edge_browser.find_element_by_name('reboot')
        reboot.click()
        alert.accept()
        time.sleep(70)
        print('Reboot')
        edge_browser.quit()
    except:
        print('Problem with restarting modem')
        edge_browser.quit()
Пример #6
0
    def SetUpEdge(self):
        """Product name: Microsoft WebDriver Product version 83.0.478.58 
        * Edge gets wordy when it's headless, but at least it's working (by setting window size)
        * At the time of this refactor for Selenium 4, Edge does not yet support the new API, so I'm using the legacy one"""
        options = EdgeOptions()
        options.use_chromium = True
        #EdgeOptions.AddArguments("headless")  # this version of selenium doesn't have addarguments for edge
        options.headless = True  # I got this to work by setting the handler window size

        try:
            handler = Edge(executable_path=Path(self.handler_path +
                                                'msedgedriver.exe'),
                           options=options)
            handler.set_window_size(
                1600, 1200
            )  # set the browser handler window size so that headless will work with sendkeys
            logging.info(
                f"{datetime.now(tz=None)} Info {self.browse} browser handler found"
            )
        except (WebDriverException):
            logging.info(
                f"{datetime.now(tz=None)} Warning {self.browse} browser handler not found or failed to launch."
            )
            handler = None
        return handler  # ignore the handshake errors
def main():
    edge_options = EdgeOptions()
    edge_options.use_chromium = True
    edge_driver = Edge(options=edge_options)
    edge_driver.minimize_window()

    # Connect to MySQL database
    try:
        db = MySQLdb.connect("localhost", "root", "toodles!?13", "player_game")
    except Exception as e:
        Popen(args="D:\\Programming Projects\\PersonalProjects\\RLCSChampionClassifier\\StartMySQL-C.bat")
        db = MySQLdb.connect("localhost", "root", "toodles!?13", "player_game")
    time.sleep(7)

    # Retrieve players and populate database
    player_dict = retrieve_player_data(edge_driver)
    player_dict["Unavailable"] = Player("Unavailable", -1)
    players = list(player_dict.values())
    # for player in players:
    #     player.to_database(db)

    season_list = retrieve_season_data(edge_driver, player_dict)
    for season in season_list:
        print(season.title)
        print("-------------------------------")
        for team in season.team_set:
            print(team)
        print("-------------------------------")
        season.to_database(db)
 def get_driver(browser, headless_mode=False) -> EventFiringWebDriver:
     if browser == "chrome":
         options = webdriver.ChromeOptions()
         options.add_argument("start-maximized")
         if headless_mode is True:
             options.add_argument("--headless")
         driver = EventFiringWebDriver(
             webdriver.Chrome(ChromeDriverManager().install(),
                              options=options), WebDriverListener())
         return driver
     elif browser == "firefox":
         options = webdriver.FirefoxOptions()
         if headless_mode is True:
             options.headless = True
         driver = EventFiringWebDriver(
             webdriver.Firefox(
                 executable_path=GeckoDriverManager().install(),
                 options=options), WebDriverListener())
         return driver
     elif browser == "edge":
         options = EdgeOptions()
         options.use_chromium = True
         if headless_mode is True:
             options.headless = True
         driver_path = EdgeChromiumDriverManager().install()
         driver = EventFiringWebDriver(
             Edge(executable_path=driver_path, options=options),
             WebDriverListener())
         return driver
     raise Exception("Provide valid driver name")
Пример #9
0
def main(driver: WebDriver = None):
    try:
        if not driver:
            options = EdgeOptions()
            options.use_chromium = True
            options.add_argument("-inprivate")

            driver = Edge(executable_path=EDGE_DRIVER_PATH, options=options)
            driver.get(url_encode())

        wait = WebDriverWait(driver, 30, 1)
        # elem_vote = driver.find_element(By.XPATH, "//a[text()='投票']")
        # elem_vote = wait.until(EC.presence_of_element_located((By.XPATH, r"//a[text()='投票']")))
        # elem_vote.click()
        callback = step()
        elem = wait.until(callback)

        # elem_vote_options = wait.until(get_elem_vote_options)
        # elem_vote_options = wait.until(EC.visibility_of_all_elements_located((By.XPATH, "//div/div/label[@class='label']")))
        # elem_vote_options = elem_vote.find_elements(By.XPATH, "//div/div/label[@class='label']")
        elem = wait.until(callback)

        # map(lambda e: e.click(), elem_vote_options)
        # elem_vote_btn = wait.until(EC.element_to_be_clickable((By.XPATH, r"//a[text()='確認送出']")))
        # 1elem_vote_btn = driver.find_element(By.XPATH, r"//a[text()='確認送出']")
        # elem_vote_btn.click()
        elem = wait.until(callback)
    except Exception as e:
        traceback.print_exc(4, sys.stderr)
    finally:
        driver.delete_all_cookies()
        driver.refresh()
        main(driver)

    driver.quit()
Пример #10
0
def edge(headless=True):
    options = EdgeOptions()
    options.use_chromium = True
    options.headless = headless
    edge_driver = EdgeChromiumDriverManager().install()
    driver = Edge(edge_driver, options=options)
    return driver
Пример #11
0
def main(position, location):
    """Run the main program routine"""
    scraped_jobs = []
    scraped_urls = set()
    
    url = get_url(position, location)
    
    # setup web driver
    options = EdgeOptions()
    options.use_chromium = True
    driver = Edge(options=options)
    driver.implicitly_wait(5)
    driver.get(url)        
    
    # extract the job data
    while True:
        cards = driver.find_elements_by_class_name('jobsearch-SerpJobCard')
        get_page_records(cards, scraped_jobs, scraped_urls)
        try:
            driver.find_element_by_xpath('//a[@aria-label="Next"]').click()
        except NoSuchElementException:
            break
        except ElementNotInteractableException:
            driver.find_element_by_id('popover-x').click()  # to handle job notification popup
            get_page_records(cards, scraped_jobs, scraped_urls)
            continue

    # shutdown driver and save file
    driver.quit()
    save_data_to_file(scraped_jobs)
Пример #12
0
def edge_builder(headless=False, **kwargs):
    edge_options = EdgeOptions()
    edge_options.use_chromium = True
    if headless:
        edge_options.headless = True
    service_log_path = f"{LOG_DIR}/edge_driver.log"
    driver = webdriver.Edge(edge_options, service_log_path=service_log_path)
    return driver
Пример #13
0
 def __init__(self):
     options = EdgeOptions()
     options.use_chromium = True
     # options.add_argument("headless")
     # options.add_argument("disable-gpu")
     #防止打印无用信息   enable-automation规避检测
     options.add_experimental_option("excludeSwitches", ['enable-automation', 'enable-logging'])
     self.bro = Edge(options = options)
def getRobertsAnimeCornerStoreData(title, bookType):
    #Starts wevdriver to scrape edge chromium
    options = EdgeOptions()
    options.use_chromium = True
    options.add_argument("-inprivate")
    options.add_argument("--headless")
    driver = Edge(options=options)

    soup = BeautifulSoup(driver.page_source, "html.parser")

    newPage = getDataPage(driver, title, soup, bookType)
    if not newPage:
        print(title)
        print("Error!!!!! Invalid Series Title")
        return
    else:
        #Start scraping the URL where the data is found
        driver.get(newPage)

        #Wait for the web page to finish loading
        time.sleep(5)

        #Start parsing the web pages html and css
        soup2 = BeautifulSoup(driver.page_source, "html.parser")

        #Get the Title and Price of each manga or light novel
        dataList, titleList = [], []
        titleParse = soup2.find_all(
            "tr", {"valign": "top"
                   })[1:]  #Remove first element cause it pulls unwanted text
        priceList = soup2.select(
            'font[color="#ffcc33"]'
        )[1::
          2]  #[1::2] to remove the RACS Price text (every odd element in the list)

        #Convert title list to strings so you can remove any black/empyt spaces
        for bookTitle in titleParse:
            seriesTitle = bookTitle.find("font", {"size": "2"}).b.text
            if seriesTitle != " ":
                titleList.append(seriesTitle)
        del titleParse  #Remove list from memory as we don't need it anymore

        stockStatus = ""
        for titles, prices in zip(titleList, priceList):
            specTitle = str(titles).replace(",", "")
            if specTitle.find("Pre Order") != -1:
                stockStatus = "Pre-Order"
            else:
                stockStatus = "Available"
            dataList.append([specTitle, prices.text, stockStatus])

        csvFile = "AnimeCornerStore.csv"
        with open(csvFile, "w", newline="", encoding="utf-8") as file:
            writeToFile = csv.writer(file)
            writeToFile.writerow(["Title", "Price", "Stock Status"])
            writeToFile.writerows(dataList)
        #TableGUI.robertsDataTable.setItem(numRows, 0, QtWidgets.QTableWidgetItem(str(dataList[0])))
        return dataList
Пример #15
0
def create(downloadPath):
    driverPath = os.path.dirname(
        os.path.realpath(__file__)) + "\\msedgedriver.exe"

    edgeOptions = EdgeOptions()
    prefs = {"download.default_directory": os.getcwd() + "\\" + downloadPath}
    edgeOptions.add_experimental_option("prefs", prefs)

    return Edge(executable_path=driverPath, options=edgeOptions)
Пример #16
0
def codigo(link, navegador):

    cont = 0
    x = 1
    y = 1

    split = link.split('q=')
    print(split)
    print(navegador)

    if navegador == 2:

        options = EdgeOptions()
        options.use_chromium = True

        driver = Edge(options=options)
        driver.maximize_window()
        #print(link)
        driver.get("https://scholar.google.com.br/scholar?start=0&q={}".format(
            split[1]))

        root = os.getcwd()

        wait = WebDriverWait(driver, 10)

        while (True):

            try:
                os.mkdir('planilhas')
            except FileExistsError:
                os.chdir(f'{root}\\planilhas')

                wb = Workbook()

                planilha = wb.worksheets[0]

                items = wait.until(
                    EC.visibility_of_all_elements_located(
                        (By.CSS_SELECTOR, '.gs_rt a')))

                for item in items:

                    nome_artigo = item.text
                    link_artigo = item.get_attribute('href')
                    print('Artigo: ', nome_artigo, '\nLink: ', link_artigo,
                          '\n')
                    planilha['A{}'.format(x)] = nome_artigo
                    planilha['B{}'.format(y)] = link_artigo

                botao = driver.find_element_by_partial_link_text('Mais')
                botao.click()
                wb.save("planilha.xlsx")

                x += 1
                y += 1

    return
Пример #17
0
def openEdgeBrowser(webDriverLocation: str, showBrowser: bool) -> webdriver:
    print("打开Edge浏览器!")
    option = EdgeOptions()
    # 开启无头模式.
    if not showBrowser:
        option.use_chromium = True
        option.headless = True
    browser = Edge(executable_path=webDriverLocation, options=option)
    return browser
Пример #18
0
def open_browser(env, browser='chrome', incognito=True):
    driver = None
    if browser == "chrome":
        chrome_options = webdriver.ChromeOptions()
        if incognito:
            chrome_options.add_argument('--incognito')
        driver = webdriver.Chrome(executable_path=chrome_driver_path, chrome_options=chrome_options)
    elif browser == "msedge":
        edge_options = EdgeOptions()
        edge_options.use_chromium = True
        if incognito:
            edge_options.add_argument('-inprivate')
        driver = Edge(executable_path=msedge_driver_path, options=edge_options)
    elif browser == "firefox":
        firefox_options = webdriver.FirefoxOptions()
        if incognito:
            firefox_options.add_argument('--incognito')
        driver = webdriver.Firefox(executable_path=firefox_driver_path, options=firefox_options)
    elif browser == "ie":
        driver = webdriver.Ie(executable_path=ie_driver_path)
        # selenium grid
        # driver = webdriver.Remote(command_executor='http://10.22.40.234:5555/wd/hub',
        #                           desired_capabilities=DesiredCapabilities.INTERNETEXPLORER)
    elif browser == "safari":
        driver = webdriver.Safari()

    # 获取web配置
    with open(web_config_path, 'r', encoding='utf-8') as file:
        data = yaml.load(file, Loader=yaml.FullLoader)

    # 以下是一个示例,基于config/web_config.yaml文件做的配置
    if env == "msit":
        url = data["portal"]['msit']
        Logger.info("Open Url: %s", url)
        driver.get(url)
    if env == "srol1":
        url = data["portal"]['srol1']
        Logger.info("Open Url: %s", url)
        driver.get(url)
    if env == "srol2":
        url = data["portal"]['srol2']
        Logger.info("Open Url: %s", url)
        driver.get(url)
    if env == "ppe":
        url = data["portal"]['ppe']
        Logger.info("Open Url: %s", url)
        driver.get(url)
    if env == "refe":
        url = data["portal"]['refe']
        Logger.info("Open Url: %s", url)
        driver.get(url)
    elif env == '':
        driver = None
    driver.maximize_window()
    driver.implicitly_wait(data['implicitly_wait'])
    return driver
Пример #19
0
    def create_chrome_driver(self):
        chrome_options = EdgeOptions()

        proxy = self.get_next_proxy()
        print("CurrProxy: " + proxy)

        chrome_options.add_argument('--proxy-server=%s' % proxy)
        return webdriver.Chrome(
            "C:\\Windows.old\\Users\\Public\\chromedriver.exe",
            options=chrome_options)
Пример #20
0
    def test_legacy_options_to_capabilities(self):
        options = EdgeOptions()
        options._page_load_strategy = 'eager'  # common
        options._debugger_address = 'localhost:9222'  # chromium only

        cap = options.to_capabilities()
        self.assertEqual('MicrosoftEdge', cap['browserName'])
        self.assertEqual('eager', cap['pageLoadStrategy'])
        self.assertFalse('ms:edgeOptions' in cap)
        self.assertFalse(cap['ms:edgeChromium'])
Пример #21
0
 def test_chromium_driver_with_chromium_options(self):
     options = EdgeOptions()
     options.use_chromium = True
     try:
         driver = Edge('msedgedriver.exe', options=options)
     except:
         self.assertTrue(
             False, 'Test chromium driver with chromium options failed.')
     else:
         driver.quit()
 def setUp(self):
     options = EdgeOptions()
     options.use_chromium = True
     options.binary_location = "C:\\Program Files (x86)\\Microsoft\\Edge Dev\\Application\\msedge.exe"
     dir = os.path.dirname(os.path.realpath(__file__))
     edge_driver_path = dir + "\\edgedriver_win64\\msedgedriver.exe"
     self.driver = Edge(options=options, executable_path=edge_driver_path)
     self.driver.implicitly_wait(30)
     self.driver.maximize_window()
     self.driver.get("http://localhost:4200")
Пример #23
0
    def __init__(self,
                 df_dir='src/data',
                 df_path='data/dataframe.csv',
                 df_file_name='new_dataframe.csv',
                 cookies_path='src/cookies/cookies.pkl',
                 driver_path='',
                 _driver=None,
                 _check=False):
        self.df_dir = df_dir
        self.df_path = df_path if self.read_file is None else f'data/{self.read_file}'
        self.df_file_name = df_file_name
        self.cookies_path = cookies_path
        self.driver_path = driver_path
        self.driver = _driver
        self.check = _check

        if self.driver is None:
            # Selenium capabilities and other settings
            options = Options()

            # Options for microsoft edge (chromium)
            edge_options = EdgeOptions()
            edge_options.use_chromium = True
            edge_options.add_argument('log-level=3')
            edge_options.add_argument('lang=en')
            edge_options.add_argument('--start-maximized')

            # Main webdriver
            self.driver = Edge(executable_path=self.driver_path,
                               options=edge_options)

        self._check_connection()
Пример #24
0
def createMSEdgeDriver():
	# goog:loggingPrefs allows for access to console logs.
	desiredCapabilities = DesiredCapabilities.CHROME
	desiredCapabilities['goog:loggingPrefs'] = { 'browser':'ALL' }

	msedge_options = EdgeOptions()
	msedge_options.use_chromium = True
	
	driver = Edge(options = msedge_options)
	
	return driver
Пример #25
0
 def __init__(self):
     '''Initialize the application'''
     #As using the standard webdriver was giving warnings and messing up the terminal, I used the code below to show just what I want.
     self.opt = EdgeOptions()
     self.opt.add_experimental_option('excludeSwitches', ['enable-logging'])
     self.opt.add_argument("--start-maximized")
     self.opt.use_chromium = True
     self.driver = Edge(
         executable_path=
         r"C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedgedriver.exe",
         options=self.opt)
Пример #26
0
def main():
    """Get what?"""
    options = EdgeOptions()
    options.use_chromium = True
    # options.add_argument("headless")
    # options.add_argument("disable-gpu")
    driver = Edge(options=options)

    # url = 'https://www.flipkart.com/laptops-store'
    url = 'https://podbay.fm/p/sach-noi-danh-cho-ban/'

    driver.get(url)
    # driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")
    el = driver.find_element_by_tag_name('body')
    # el = driver.find_element(By.NAME, "Loading more").send_keys()
    for i in range(4):
        el.send_keys("webdriver" + Keys.END)
        sleep(3)
    # driver.close()

    # print(driver.title)

    # products = []  # List to store name of products
    # prices = []  # List to store price of product
    # ratings = []  # List to store ratings of product
    titles = []
    urls = []

    content = driver.page_source
    # soup = BeautifulSoup(content, 'html.parser')
    soup = BeautifulSoup(content, 'lxml')
    for a in soup.findAll('a', href=True, attrs={'class': 'jsx-1043497740'}):
        # for a in soup.findAll('a', href=True, attrs={'class': 'download'}):
        # name = a.find('div', attrs={'class': 's1Q9rs'})
        # price = a.find('div', attrs={'class': '_30jeq3'})
        # rating = a.find('div', attrs={'class': '_3LWZlK'})
        # products.append(name.text)
        # prices.append(price.text)
        # ratings.append(rating.text)

        # print(a)
        title = a.string
        if title != None:
            print(title)
            titles.append(title)

        link = a.get('href')
        if link.endswith(".mp3"):
            print(link)
            urls.append(link)

    driver.close()
    print(titles)
    print(urls)
Пример #27
0
 def setUp(self):
     WebDriverFactory().setup_edgedriver()
     from msedge.selenium_tools import Edge, EdgeOptions
     options = EdgeOptions()
     options.use_chromium = True
     options.set_capability('platform', 'MAC' if OS_NAME == 'MAC' else 'WINDOWS')
     self.driver1 = Edge(options=options)
     self.driver2 = Edge(options=options)
     self.driver1.maximize_window()
     self.wait1 = WebDriverWait(self.driver1, 5)
     self.wait2 = WebDriverWait(self.driver2, 5)
Пример #28
0
 def test_legacy_options(self):
     try:
         options = EdgeOptions()
         options.use_chromium = False
         driver = Edge(options=options)
         cap = driver.capabilities
         self.assertEqual('MicrosoftEdge', cap['browserName'],
                          'Driver launches Edge Legacy.')
     except:
         self.assertTrue(False, 'Test legacy options failed.')
     else:
         driver.quit()
def init_browser_driver(browser_name, driver_path):
    if browser_name == 'Edge':
        # driver_path = r'C:\lib\edgedriver_win64\msedgedriver.exe'
        options = EdgeOptions()
        options.use_chromium = True
        return Edge(options=options, executable_path=driver_path)
    elif browser_name == 'Chrome':
        # driver_path = r'C:\lib\chromedriver_win32\chromedriver.exe'
        return Chrome(executable_path=driver_path)
    else:
        sys.exit(
            'Implement the browser driver initialization of your choice here.')
Пример #30
0
 def accesotfs(self, ruta, dire):
     # self.robot = robot
     ticket1 = str(self.dato1.get())
     #self.chrome_options = Options()
     #if self.seleccion.get()==1:
         #self.chrome_options.add_argument("--headless")
     # self.driver = webdriver.Chrome(executable_path=r"C:\Google\chromedriver")
     # self.driver = webdriver.Edge(executable_path=r"C:\Google\msedgedriver")
     self.edge_option = EdgeOptions()
     self.edge_option.add_argument("hide_console")
     # options.add_argument = ["hide_console"]
     # self.driver = webdriver.Edge(options)
     # self.driver = webdriver.Edge("C:\Google\msedgedriver", options=self.edge_option)
     self.driver = Edge("C:\Google\msedgedriver", service_args= ["hide_console"])
     url = "http://10.1.27.11:8080/tfs/TFSYPF/E2E/_workitems?_a=edit&id="
     urlarmada = url + ticket1
     # Conectarse
     self.driver.get(urlarmada)
     self.driver.implicitly_wait(8)
     # self.robot.typewrite("SE33439")
     # time.sleep(1)
     # self.robot.press('tab')
     # time.sleep(1)
     # robot.typewrite("Homeroibm2020-")
     # time.sleep(1)
     # self.robot.press('tab')
     # time.sleep(1)
     # self.robot.press('enter')
     # time.sleep(4)
     # dirigirse hacia el modulo attachment
     self.attachment = "ui-id-7"
     self.driver.find_element_by_id(self.attachment).click()
     # boton agregar adjuntos
     # time.sleep(1)
     self.driver.implicitly_wait(5)
     for i in ruta:
         nombre_archivo = i
         direarchivo= dire + nombre_archivo
         self.driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/div[2]/div/div[3]/div[4]/div[2]/div/div[2]/div[2]/table/tbody/tr[5]/td/table/tbody/tr/td[2]/table/tbody/tr/td/div/div[3]/table/tbody/tr/td/div/ul/li[2]").click()
         # time.sleep(1)
         # boton seleccionar archivo
         self.driver.implicitly_wait(5)
         self.driver.find_element_by_xpath("/html/body/div[4]/div[2]/div/form/input[1]").send_keys(direarchivo)
         # time.sleep(1)
         # boton aceptar
         self.driver.implicitly_wait(5)
         self.driver.find_element_by_xpath("/html/body/div[4]/div[3]/div/button[1]").click()
         # time.sleep(1)
         # boton guardar
         self.driver.implicitly_wait(5)
     
     self.driver.implicitly_wait(5)
     self.driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/div[2]/div/div[3]/div[4]/div[2]/div/div[2]/div[1]/ul/li[2]").click()