获取用户输入并在另一个脚本中使用它
Taking user input and using it in another script
我正在开发一个 python 脚本来进入一些公司网站并提取我需要的数据。所以我有两种脚本,第一种是执行自动化过程,第二种是“父”脚本,我在其中使用 运行py 到 运行 第一种脚本和 tkinter.simpledialog.askstring 询问用户的登录名和密码。
我面临的问题是我需要存储用户的输入(我在“父”脚本中收集的)并在我的自动化脚本中使用它。这是我的“父”脚本:
import runpy
import pyautogui
import pyperclip
import tkinter as tk
import tkinter.simpledialog
pyautogui.PAUSE=1
tk.Tk().withdraw()
login=tkinter.simpledialog.askstring("Login","Enter login", show="")
password=tkinter.simpledialog.askstring("Password","Enter password", show="*")
time.sleep(2)
runpy.run_path('path to my automation script')
如您所见,它仅存储用户的输入和 运行 另一个脚本。下面是位于 'path to my automation script'.
的另一种脚本
from selenium import webdriver
import pyforest
import time
import pandas
import openpyxl
import pyautogui
from Parent_Script import login, password
driver=webdriver.Chrome(executable_path='path to chromedriver',options=options)
driver.get('corporative website')
login_website=driver.find_element_by_xpath('//*[@id="txtLogin"]')
login_website.send_keys(login)
password_website=driver.find_element_by_xpath('//*[@id="txtPassword"]')
password_website.send_keys(password)
我正在尝试导入我的父脚本变量登录名和密码,但作为用户我必须填写 tkinter 对话框两次(我认为第一次填写是因为我 运行 父脚本,第二个是父脚本 运行是自动化脚本,因此它重新运行 父脚本 进行变量导入)。有没有更好(或正确)的方法让它有效地工作?
在等待答案的过程中,我找到了解决方案。嗯,有点。
我从“父”脚本中删除了所有 tkinter 内容,并创建了一个名为“Login_Password”的模块。这个模块的整个脚本是:
import tkinter as tk
import tkinter.simpledialog
tk.Tk().withdraw()
login=tkinter.simpledialog.askstring("Login","Enter login", show="")
password=tkinter.simpledialog.askstring("Password","Enter password", show="*")
然后我将我的 Login_Password 模块从 Python 移动到站点包的路径,以便能够将它作为一个模块导入到我的自动化脚本中,它现在工作正常。
我正在开发一个 python 脚本来进入一些公司网站并提取我需要的数据。所以我有两种脚本,第一种是执行自动化过程,第二种是“父”脚本,我在其中使用 运行py 到 运行 第一种脚本和 tkinter.simpledialog.askstring 询问用户的登录名和密码。 我面临的问题是我需要存储用户的输入(我在“父”脚本中收集的)并在我的自动化脚本中使用它。这是我的“父”脚本:
import runpy
import pyautogui
import pyperclip
import tkinter as tk
import tkinter.simpledialog
pyautogui.PAUSE=1
tk.Tk().withdraw()
login=tkinter.simpledialog.askstring("Login","Enter login", show="")
password=tkinter.simpledialog.askstring("Password","Enter password", show="*")
time.sleep(2)
runpy.run_path('path to my automation script')
如您所见,它仅存储用户的输入和 运行 另一个脚本。下面是位于 'path to my automation script'.
的另一种脚本from selenium import webdriver
import pyforest
import time
import pandas
import openpyxl
import pyautogui
from Parent_Script import login, password
driver=webdriver.Chrome(executable_path='path to chromedriver',options=options)
driver.get('corporative website')
login_website=driver.find_element_by_xpath('//*[@id="txtLogin"]')
login_website.send_keys(login)
password_website=driver.find_element_by_xpath('//*[@id="txtPassword"]')
password_website.send_keys(password)
我正在尝试导入我的父脚本变量登录名和密码,但作为用户我必须填写 tkinter 对话框两次(我认为第一次填写是因为我 运行 父脚本,第二个是父脚本 运行是自动化脚本,因此它重新运行 父脚本 进行变量导入)。有没有更好(或正确)的方法让它有效地工作?
在等待答案的过程中,我找到了解决方案。嗯,有点。
我从“父”脚本中删除了所有 tkinter 内容,并创建了一个名为“Login_Password”的模块。这个模块的整个脚本是:
import tkinter as tk
import tkinter.simpledialog
tk.Tk().withdraw()
login=tkinter.simpledialog.askstring("Login","Enter login", show="")
password=tkinter.simpledialog.askstring("Password","Enter password", show="*")
然后我将我的 Login_Password 模块从 Python 移动到站点包的路径,以便能够将它作为一个模块导入到我的自动化脚本中,它现在工作正常。