Как передать аргументы в python exe-файлах? - PullRequest
0 голосов
/ 09 июля 2020

Я создал .exe для кода ниже. Я создал / dist и теперь пытаюсь запустить .exe, но ничего не произошло. Подскажите, пожалуйста, как действовать, или я что-то не так делаю? Можно ли выполнить приведенный ниже код с помощью .exe. Пожалуйста, предложите.

from selenium import webdriver  
from time import sleep  
import sys  

driver = webdriver.Firefox()  # To connect to web browser use webdriver imported from selenium
driver.get('https://web.whatsapp.com/')

name = sys.argv[1]
msg = sys.argv[2]
filepath = sys.argv[3]


def whatsapp(name, msg="", filepath=""):

    input('Enter anything after scanning QR code')

    user = driver.find_element_by_xpath('//span[@title = "{}"]'.format(name))
    user.click()

    if msg != "":
        msg_box = driver.find_element_by_xpath("//*[@id='main']/footer/div[1]/div[2]/div/div[2]")
        msg_box.send_keys(msg)  # To send message

        button = driver.find_element_by_xpath("//*[@id='main']/footer/div[1]/div[3]/button")
        button.click()  # click send button

    if filepath != "":
        attachment_box = driver.find_element_by_xpath('//div[@title = "Attach"]')
        attachment_box.click()  # click attachment icon button

        image_box = driver.find_element_by_xpath(
        '//input[@accept="image/*,video/mp4,video/3gpp,video/quicktime"]')
        image_box.send_keys(filepath)  # To send filepath

        sleep(3)  # use to set delay time of 3 sec. It will first find the image box,

        send_button = driver.find_element_by_xpath('//span[@data-testid="send"]')
        send_button.click()  # click send button


if name != "":
    whatsapp(name, msg, filepath)  # parameters are passed at run time using sys.argv

    if msg != "" and filepath == "":
        print("Only message sent successfully")
    elif msg == "" and filepath != "":
        print("Only attachment sent successfully")
    elif msg == "" and filepath == "":
        print("Both message and attachment not sent")
    else:
        print("Both message and attachment sent successfully")
else:
    print("name or group name cannot be empty")

1 Ответ

0 голосов
/ 09 июля 2020

Возможный дубликат после компиляции программы python, как вводить аргументы

Ответ ashwinjv по указанной выше ссылке

Если вы нажмете на exe, чтобы открыть его: обычно, когда вы дважды щелкаете по exe, есть только один аргумент, который равен <EXEfilename>. Создайте ярлык для этого exe. В свойствах этого ярлыка вы увидите свойство Target, которое будет содержать <EXEfilename>, измените его на <EXEfilename> <arg1> <arg2>. Когда вы используете этот ярлык для открытия exe, он вызывает цель, которой является этот вызов <EXEfilename> <arg1> <arg2>. Затем вы можете получить доступ к arg1 и arg2 с помощью sys.argv. Если вы используете командную строку: просто назовите его как C:\> <EXEfilename> <arg1> <arg2>

...