0

I am trying to automate web entry for my work, I was wondering, is there a way to copy a user entry and paste it into the web page? I have 0 experience with this kind of stuff so any help is much appreciated!

I'll attach the code below:

import tkinter as tk
import pyautogui
pyautogui.FAILSAFE = True

#Define text to copy into website
  
def bus():
    business.get()
def ECN():
    eCName.get("1.0",END)
def ECnum():
    eCNumber.get("1.0",END)
def AOW():
    aOWaste.get("1.0",END)
def DOP():
    dOPickup.get("1.0",END)
def ad():
    address.get("1.0",END)


def clear_text():
   text.delete(0, END)

#Key press (Put above window creation and change close to WTC for command)
#Page 1 of WTC
def WTC():
    pyautogui.click(x=505, y=282, clicks=1, interval=0.03, button='left')
    pyautogui.press('f5')
    time.sleep(3)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('right',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    #Business name entry 
    #Need to find a way to store business
    #pyautogui.hotkey('alt','tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.hotkey('ctrl','c',interval=0.1)
    #pyautogui.hotkey('alt','tab',interval=0.1)
    #pyautogui.hotkey('ctrl','v',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    #Emergency contact name 
    #Need a way to store ecName
    #pyautogui.hotkey('alt','tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.hotkey('ctrl','c',interval=0.1)
    #pyautogui.hotkey('alt','tab',interval=0.1)
    #pyautogui.hotkey('ctrl','v',interval=0.1)
    pyautogui.press('tab')
    #Emergency contact number 
    #Need a way to store contact number 
    #pyautogui.hotkey('alt','tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.hotkey('ctrl','c',interval=0.1)
    #pyautogui.hotkey('alt','tab',interval=0.1)
    #pyautogui.hotkey('ctrl','v',interval=0.1)
    pyautogui.hotkey('tab', interval=0.1)
    pyautogui.hotkey('enter', interval=0.1)
    time.sleep(5)
    #Page 2 of WTC
    #move mouse to middle of page (need to find coordinates) 
    pyautogui.click(x=500, y=339, clicks=1, interval=0.03, button='left')
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter', interval='0.1')
    time.sleep(2)
    #Waste code
    pyautogui.press('tab',interval='0.1')
    pyautogui.press('tab',interval='0.1')
    pyautogui.write('J120', interval=0.1)
    time.sleep(1)
    pyautogui.press('enter', interval='0.1')
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter', interval=0.1)
    time.sleep(1)
    #Intended treatment option
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('down',interval=0.1)
    pyautogui.press('down',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter', interval='0.05')
    time.sleep(4)
    #Waste Origin
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.write('9419', interval=0.1)
    pyautogui.press('enter',interval=0.1)
    time.sleep(1.5)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    time.sleep(1)
    #Amount of waste, unit of waste, dispatch date and contaminant code 
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    #Need a way to store amount of waste
    #pyautogui.hotkey('alt','tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.hotkey('ctrl','c',interval=0.1)
    #pyautogui.hotkey('alt','tab',interval=0.1)
    #pyautogui.hotkey('ctrl','v',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('down',interval=0.1)
    pyautogui.press('down',interval=0.1)
    pyautogui.press('down',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    #Need a way to store unit of waste 
    #pyautogui.hotkey('alt','tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.hotkey('ctrl','c',interval=0.1)
    #pyautogui.hotkey('alt','tab',interval=0.1)
    #pyautogui.hotkey('ctrl','v',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.write('67',interval=0.1)
    time.sleep(1.5)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    time.sleep(8)
    #WTC Page 3
    #Map
    pyautogui.click(x=699, y=475, clicks=1, interval=0.05, button='left')
    pyautogui.press('up',interval=0.1)
    pyautogui.press('enter', interval=0.1)
    time.sleep(1)
    #Address of pickup
    #Need a way to store address
    #pyautogui.hotkey('alt','tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.press('tab',interval=0.1)
    #pyautogui.hotkey('ctrl','c',interval=0.1)
    #pyautogui.hotkey('alt','tab',interval=0.1)
    #pyautogui.hotkey('ctrl','v',interval=0.1)
    time.sleep(1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    #Wait time incase it picked the wrong address
    time.sleep(2)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    time.sleep(7)
    #WTC Page 4
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    time.sleep(5)
    #Transporter
    pyautogui.press('tab',interval=0.1)
    pyautogui.write('J.J',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    time.sleep(1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    time.sleep(1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    #Reciever 
    time.sleep(2)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.write('J.J',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1) 
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1) 
    time.sleep(2)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    #WTC Page 5
    time.sleep(3)
    #Add in last enter once confirmed working 
    pyautogui.press('tab') 
    

def ContPage4():
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    time.sleep(5)
    #Transporter
    pyautogui.press('tab',interval=0.1)
    pyautogui.write('J.J',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    time.sleep(1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    time.sleep(1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    #Reciever 
    time.sleep(2)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.write('J.J',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1) 
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1) 
    time.sleep(2)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('tab',interval=0.1)
    pyautogui.press('enter',interval=0.1)
    #WTC Page 5
    time.sleep(3)
    #Add in last enter once confirmed working 
    pyautogui.press('tab') 
        
    

window = tk.Tk()
#Business name 
label = tk.Label(text="Business name").grid(row=1, column=0)
business= tk.Entry().grid(row=1, column=1)     
#Emergency contact name
label = tk.Label(text="Emergency contact name").grid(row=2, column=0)
eCName=entry = tk.Entry().grid(row=2, column=1)
#Emergency contact number
label = tk.Label(text="Emergency contact number").grid(row=3, column=0)
eCNumber= tk.Entry().grid(row=3, column=1)
#Amount of waste
label = tk.Label(text="Amount of waste").grid(row=4, column=0)
aOWaste=entry = tk.Entry().grid(row=4, column=1)
#Date of pickup
label = tk.Label(text="Date of Pickup DD/MM/YYYY").grid(row=5, column=0)
dOPickup= tk.Entry().grid(row=5, column=1)
#Address
label = tk.Label(text="Address").grid(row=6, column=0)
address= tk.Entry().grid(row=6, column=1)
#Start Button
button = tk.Button(
text="Start",
width=5,
height=2,
command= WTC
).grid(row=8,column=0)
#Continue from page 4 Button
button = tk.Button(
text="Page 4 ->",
width=8,
height=2,
command= ContPage4
).grid(row=8,column=1)





window.mainloop()

I tried pyautogui.write(business.get()) as an example in the wtc chain but it errors saying that there is nothing there. I dont know the error off the top of my head as I'm at work currently and been doing it on my home computer. I also tried alt tabing to the window with the information and copy and pasting from that but the window is not responsive.

TheLizzard
  • 7,248
  • 2
  • 11
  • 31
  • Does this answer your question? [Tkinter: AttributeError: NoneType object has no attribute ](https://stackoverflow.com/questions/1101750/tkinter-attributeerror-nonetype-object-has-no-attribute-attribute-name) Also it's a bad idea to use `time.sleep` when using `tkinter`. – TheLizzard Jan 11 '23 at 22:20
  • I think this might be what I was looking for, thankyou very much. What would you recommend instead of time.sleep? I got no way of checking the code right now but I've made an edit in notepad where I put in for example the business name section pyautogui.write(bus, interval=0.1). Will this then type out whats in the box? You have been very helpful, thanks again for your help. – Michael Serbo Jan 11 '23 at 22:58
  • You can use `tkinter`'s sleep method but when you also have another GUI framework (`pyautogui`), it might have side-effect. For now the GUI will might freeze but that should still be fine. – TheLizzard Jan 11 '23 at 23:01
  • That explains why the window freezes! Nice, worst case, I'll change that and go back to alt-tabing and copying the information. Thanks for your insightful information. – Michael Serbo Jan 11 '23 at 23:05

0 Answers0