Jump to content

Como printar uma variável dentro do FIND_ELEMENT('XPATH', 'CAMINHO'). VARIÁVEL


jeffersondenzer

Postagens Recomendadas

Pessoal, essa bagunça toda aí é meu código de teste kk

Enfim, estou tentando fazer com que o find_element(xpath).... digite o valor salvo na variável rota e rota2 no campo de texto do navegador, porém, estou com uma certa dificuldade com isso.

estou tendo o erro da imagem em anexo.


OBS: Layout qt designer

 

from PyQt5 import QtCore, QtGui, QtWidgets
import sys
import selenium
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.keys import Keys
from time import sleep
import pandas as pd
import re

 
# THIS IS THE CODE THAT I WANT TO LINK WITH TEXTBOX 
# WHEN I CLICK ON BUTTON IT WILL BE SAVED ON VARIABLES
# OBS: i will create 9 copy of the following code, one for each textbox

    
class Ui_MainWindow(object):
        

    
        def setupUi(self, MainWindow):
            MainWindow.setObjectName("MainWindow")
            MainWindow.setEnabled(True)
            MainWindow.resize(300, 300)
            MainWindow.setMinimumSize(QtCore.QSize(300, 300))
            MainWindow.setMaximumSize(QtCore.QSize(300, 300))
            self.centralwidget = QtWidgets.QWidget(MainWindow)
            self.centralwidget.setObjectName("centralwidget")
            self.formLayoutWidget = QtWidgets.QWidget(self.centralwidget)
            self.formLayoutWidget.setGeometry(QtCore.QRect(10, 0, 281, 231))
            self.formLayoutWidget.setObjectName("formLayoutWidget")
            self.formLayout = QtWidgets.QFormLayout(self.formLayoutWidget)
            self.formLayout.setContentsMargins(0, 0, 0, 0)
            self.formLayout.setObjectName("formLayout")
        
        
            self.lineEdit = QtWidgets.QLineEdit(self.formLayoutWidget)
            self.rota = self.lineEdit
            self.lineEdit.setObjectName("lineEdit")
            self.formLayout.setWidget(0, QtWidgets.QFormLayout.SpanningRole, self.lineEdit)
            
        
            self.lineEdit_2 = QtWidgets.QLineEdit(self.formLayoutWidget)
            self.rota2 = self.lineEdit_2
            self.lineEdit_2.setObjectName("lineEdit_2")
            self.formLayout.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.lineEdit_2)

        
            self.lineEdit_3 = QtWidgets.QLineEdit(self.formLayoutWidget)
            self.lineEdit_3.setObjectName("lineEdit_3")
            self.formLayout.setWidget(2, QtWidgets.QFormLayout.SpanningRole, self.lineEdit_3)

        
            self.lineEdit_4 = QtWidgets.QLineEdit(self.formLayoutWidget)
            self.lineEdit_4.setObjectName("lineEdit_4")
            self.formLayout.setWidget(3, QtWidgets.QFormLayout.SpanningRole, self.lineEdit_4)

        
            self.lineEdit_5 = QtWidgets.QLineEdit(self.formLayoutWidget)
            self.lineEdit_5.setObjectName("lineEdit_5")
            self.formLayout.setWidget(4, QtWidgets.QFormLayout.SpanningRole, self.lineEdit_5)

        
            self.lineEdit_6 = QtWidgets.QLineEdit(self.formLayoutWidget)
            self.lineEdit_6.setObjectName("lineEdit_6")
            self.formLayout.setWidget(5, QtWidgets.QFormLayout.SpanningRole, self.lineEdit_6)

        
            self.lineEdit_7 = QtWidgets.QLineEdit(self.formLayoutWidget)
            self.lineEdit_7.setObjectName("lineEdit_7")
            self.formLayout.setWidget(6, QtWidgets.QFormLayout.SpanningRole, self.lineEdit_7)

        
            self.lineEdit_8 = QtWidgets.QLineEdit(self.formLayoutWidget)
            self.lineEdit_8.setObjectName("lineEdit_8")
            self.formLayout.setWidget(7, QtWidgets.QFormLayout.SpanningRole, self.lineEdit_8)

    
            self.lineEdit_9 = QtWidgets.QLineEdit(self.formLayoutWidget)
            self.lineEdit_9.setObjectName("lineEdit_9")
            self.formLayout.setWidget(8, QtWidgets.QFormLayout.SpanningRole, self.lineEdit_9)

        
            self.b1 = QtWidgets.QPushButton(self.centralwidget)
            self.b1.setGeometry(QtCore.QRect(10, 232, 281, 41))
            self.b1.setObjectName("b1")
            self.b1.clicked.connect(self.clicked)
        
            MainWindow.setCentralWidget(self.centralwidget)
            self.menubar = QtWidgets.QMenuBar(MainWindow)
            self.menubar.setGeometry(QtCore.QRect(0, 0, 300, 21))
            self.menubar.setObjectName("menubar")
            MainWindow.setMenuBar(self.menubar)
            self.statusbar = QtWidgets.QStatusBar(MainWindow)
            self.statusbar.setObjectName("statusbar")
            MainWindow.setStatusBar(self.statusbar)

            self.retranslateUi(MainWindow)
            QtCore.QMetaObject.connectSlotsByName(MainWindow)

        def retranslateUi(self, MainWindow):
            _translate = QtCore.QCoreApplication.translate
            MainWindow.setWindowTitle(_translate("MainWindow", "Route manager in python"))
            self.b1.setText(_translate("MainWindow", "Enviar")) 
    
        def rota(self):
            rota = self.rota
            
        def rota2(self):
            rota2 = self.rota2
        
        def clicked(rota, rota2):
            
            servico = Service(ChromeDriverManager().install())
            navegador = webdriver.Chrome(service=servico)
            navegador.get("https://www.google.com.br/maps/dir//")
            sleep(5)
            navegador.find_element('xpath', '//*[@id="sb_ifc50"]/input').send_keys(rota) # this one is fixed
            navegador.find_element('xpath', '//*[@id="sb_ifc50"]/input').send_keys(Keys.ENTER)
            navegador.find_element('xpath', '//*[@id="sb_ifc51"]/input').send_keys(rota2)#this one will change by every texbox
            navegador.find_element('xpath', '//*[@id="sb_ifc51"]/input').send_keys(Keys.ENTER)   
            sleep(5)
            kmtotal=navegador.find_element('xpath', '/html/body/div[3]/div[9]/div[9]/div/div/div[1]/div[2]/div/div[1]/div/div/div[4]/div[1]/div[1]/div[1]/div[1]/div[2]/div')
            km1 = kmtotal.text
            value = km1.replace('km', '').replace(',', '.').replace(' ', '')
            kma = float(value)

            print(kma)
            print(self.rota.text())
            print(self.rota2.text())
            #print(self.lineEdit.text())
            #print(self.lineEdit_2.text())
            #print(self.lineEdit_3.text())
            #print(self.lineEdit_4.text())
            #print(self.lineEdit_5.text())
            #print(self.lineEdit_6.text())
            #print(self.lineEdit_7.text())
            #print(self.lineEdit_8.text())
            #print(self.lineEdit_9.text())
                
            
      #  def kma(self):
            #destino = input()
            #destinob = input()
 
        
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())
clicked("rota", "rota2")  

Opera Instantâneo_2022-10-28_142342_localhost.png

Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...