Ir ao conteúdo
  • Cadastre-se

Python perform() não funciona no python selenium com headless


Posts recomendados

Saudações!

 

O código abaixo funciona perfeitamente com chrome e selenium. Porém, se eu uso o headless, o código não funciona. Percebi que o código é interrompido em self.action.move_to_element(firstLevelMenu).perform().

 

 

import os
from selenium import webdriver from webdriver_manager.chrome import
 ChromeDriverManager from webdriver_manager.firefox import
 GeckoDriverManager from selenium.webdriver.common.keys import Keys
 import time as pausa  from selenium.webdriver.common.by import By from
 selenium.webdriver.common.action_chains import ActionChains from
 selenium.webdriver.support.ui import WebDriverWait from
 selenium.webdriver.support import expected_conditions as EC 
 from selenium.webdriver.remote.webelement import WebElement from
 datetime import datetime from tkinter import * from tkinter import
 scrolledtext,  messagebox, ttk import pyautogui as p import csv import
 datetime from datetime import date, datetime import pyodbc
class Driver:
  def __init__ (self):
    if nav_cbx.get()=='Chrome':
        options = webdriver.ChromeOptions()
        options.add_experimental_option('useAutomationExtension', False)
        # options.add_argument("--headless")
        options.add_argument("--dns-prefetch-disable")
        options.add_argument("--disable-infobars")

        
self.driver = webdriver.Chrome('c:/driver/chromedriver.exe', options=options) #PASTA DO SCRIPT

    self.action = ActionChains(self.driver)
    self.wait = WebDriverWait(self.driver, 30)
    self.wait2 = WebDriverWait(self.driver, 10)
    agora = str(datetime.today()).replace(':', '.')
    
    cria_pasta_log()
    self.log = open(f'{caminho_log()}/log{agora}.csv', "w", newline='\n', encoding='ANSI')

    self.log.write(f'ID;Chpras;Bin;Final;Portador;Status')

    self.login = in_login.get()
    self.senha = in_senha.get()
           


def menu_reemitir(self, chpras):
    self.retorna_frame()
    
    firstLevelMenu = self.driver.find_element(By.XPATH, '//*[@id="imgMenu"]')
    
    self.action.move_to_element(firstLevelMenu).perform() # ERRO AQUIIIIIIIIIIIIIIIIIIIIIIIIII
    
    secondLevelMenu = self.driver.find_element(By.XPATH, '//*[@id="elem9"]')
    secondLevelMenu.click() #submenu reemitir cartão
    self.driver.switch_to.window(self.driver.window_handles[2]) #alternar para popup
    self.wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="FormSAT"]/div[2]/table[2]/tbody/tr/td[1]/input'))).click()
    pausa.sleep(0.5)


    alert1 = self.wait.until(EC.alert_is_present())
    
    alert1.accept()

 

 

Não é lançada nenhuma exceção. Simplesmente o código pula para a próxima função.

Como corrigir? 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...