सवाल मैं फ़ायरफ़ॉक्स में स्वचालित रूप से एक यूआरएल कैसे खोल सकता हूं और पेज पर किसी विशिष्ट स्थिति पर क्लिक कर सकता हूं?


मैं स्वचालित रूप से लॉगिन पर फ़ायरफ़ॉक्स चलाने के लिए चाहता हूँ। इसके बाद, मैं अपने आईएसपी के पेज पर जाना चाहता हूं और लॉगिन बटन पर क्लिक करना चाहता हूं, सब कुछ स्वचालित रूप से किया जाता है।

मुझे पासवर्ड दर्ज करने की आवश्यकता नहीं है, क्योंकि यह ब्राउज़र में संग्रहीत है।

मैं उबंटू 12.04 का उपयोग कर रहा हूं। क्या इस प्रकार का स्वचालन संभव है?


1
2018-06-27 02:42


मूल


के संभावित डुप्लिकेट मैं लॉगिन पर स्वचालित रूप से एप्लिकेशन कैसे शुरू करूं? - Sergiy Kolodyazhnyy
लिंक किए गए डुप्लिकेट प्रश्न देखें। आप वास्तव में क्या चाहते हैं जीयूआई बूट करने के लिए, फिर लॉगिन करें, और उबंटू सिस्टम में आपके लॉगऑन पर आवश्यक जीयूआई ऐप्स शुरू करेगा। इस तरह सिस्टम काम करता है। कमांड लाइन ऐप्स बहुत अधिक पैटर्न का उपयोग कर सकते हैं। हालांकि, कई भिन्नताएं हैं। लिंक की गई पोस्ट देखें - Sergiy Kolodyazhnyy
लेकिन मैं अपने बॉसर को साइट पर रीडायरेक्ट कैसे कर सकता हूं और स्वचालित रूप से लॉगिन कर सकता हूं? सिस्टम स्टार्टअप पर प्रोग्राम चलाने के बारे में केवल जवाब हैं - sysadmincrispy
खैर, आप कमांड लाइन से वेब ब्राउज़र कैसे खोलें? firefox google.com , ^ _ ^ बस इतना ही आसान है। स्टार्टअप पर एक कमांड के रूप में प्रयोग करें। - Sergiy Kolodyazhnyy
हाँ। यह बहुत आसान है लेकिन इसे साइट खोलने और लॉगिन विवरण प्रदान करने और स्वचालित रूप से लॉगिन करने के लिए कैसे करें। - sysadmincrispy


जवाब:


घृणित रूप से गंदा, लेकिन पूरी तरह से काम कर रहा है

... नीचे लिपि है।

मैंने फ़ायरफ़ॉक्स चलाने के लिए इसका परीक्षण किया, असुबंटू साइट खोलकर, फिर स्वचालित रूप से दबाएँ मेरा प्रोफाइल पेज खोलने के लिए लिंक। चूंकि आपका पासवर्ड आपके ब्राउज़र में संग्रहीत है, इसलिए आपके मामले में बटन दबाकर लॉग इन करने के लिए पर्याप्त है।

यह अभ्यास में कैसे काम करता है

लॉगिन के 15 सेकंड बाद (आपका उबंटू उपयोगकर्ता खाता), स्क्रिप्ट:

  • फ़ायरफ़ॉक्स खोलता है
  • खिड़की दिखाई देने के लिए इंतजार कर रहा है
  • आपके द्वारा परिभाषित यूआरएल पर चलता है
  • माउस को बटन के निर्देशांक में ले जाता है और बटन दबाता है

लिपी

#!/usr/bin/env python
import subprocess
import time

# --- set the link below
url = "http://askubuntu.com"
# --- set the mouseposition to click on below
xmouse = 858; ymouse = 166
# --- don't change anything below

appcommand = ["firefox", url]

def run(cmd):
    subprocess.Popen(cmd)
    time.sleep(0.2)

def get(cmd):
    return subprocess.check_output(cmd).decode("utf-8").strip()

def run_firefox():
    run(appcommand)
    while True:
        time.sleep(1)
        try:
            pid = get(["pgrep", "firefox"])
        except subprocess.CalledProcessError:
            pass
        else:
            time.sleep(0.1)
            w = [l.split()[0] for l in get(["wmctrl", "-lp"]).splitlines() if pid in l][0]
            break
    return w

w = run_firefox()

cmd1 = ["xdotool", "windowsize", w, "100%", "100%"]
cmd2 = ["xdotool", "mousemove", str(xmouse), str(ymouse)]
cmd3 = ["xdotool", "click", "1"]

for cmd in [cmd1, cmd2]:
    run(cmd)
time.sleep(3)
run(cmd3)

स्थापित कैसे करें

  • स्क्रिप्ट दोनों की जरूरत है wmctrl तथा xdotool

    sudo apt-get install xdotool wmctrl
    
  • स्क्रिप्ट को एक खाली फ़ाइल में कॉपी करें, इसे सुरक्षित करें run_login.py

  • अब सबसे कठिन हिस्सा:

    • लॉग इन करने के लिए अपने ब्राउज़र को पृष्ठ पर ले जाएं
    • दबाए जाने के लिए बटन को माउस पर रखें (दबाएं नहीं)
    • दबाएँ Ctrl+टी एक टर्मिनल खोलने के लिए
    • आदेश टाइप करें xdotool getmouselocation
    • निर्देशांक पढ़ें और उन्हें स्क्रिप्ट के मुख्य भाग में सेट करें:


      enter image description here

      xmouse = 856; ymouse = 165
      
    • अपने लॉगिन पेज का यूआरएल सेट करें:

      url = "http://askubuntu.com"
      
  • आदेश द्वारा इसे चलाएं (बिना एफएफ विंडो के साथ):

    python /path/to/run_login.py
    
  • अगर सब ठीक काम करता है, तो इसे स्टार्टअप एप्लीकेशन में जोड़ें: डैश> स्टार्टअप एप्लीकेशन> जोड़ें। आदेश जोड़ें:

    /bin/bash -c "sleep 15 && python /path/to/run_login.py"
    

महत्वपूर्ण लेख

चूंकि बटन पृष्ठ पर क्लिक किया गया है इसके निर्देशांक द्वारा, यह तब तक काम करेगा जब तक कि पगेलआउट अपरिवर्तित न हो। परिवर्तनों के मामले में, आपको स्क्रिप्ट के सिर में सेट के रूप में, टी स्थान को फिर से परिभाषित करने की आवश्यकता है।


3
2018-06-27 11:26



इसके अलावा, यदि ओपी उपयोगकर्ता नाम / पासवर्ड टाइप करना चाहता है, तो वे उपयोग कर सकते हैं xdotool type 'username' key Tab type 'password' - UniversallyUniqueID
@भारद्वाजराजू यह सुनिश्चित नहीं करते कि "इसके अलावा" का अर्थ क्या है (मुझे केवल एक टिप्पणी दिखाई देती है) लेकिन आप संभवतया कैसे सुझाव दे सकते हैं xdotool पासवर्ड प्रिंट करें? इसका मतलब सादे पाठ में कहीं भी पासवर्ड संग्रहीत करना है। जैसा कि यह हो जाता है के रूप में डरावना! - Jacob Vlijm
@sysadmincrispy इस तरह के पाठ्यक्रम ट्यूटोरियल हैं: tutorialspoint.com/python, लेकिन इनमें से अधिकतर ट्यूटोरियल व्यापक पाठ स्पष्टीकरण से शुरू होते हैं। भयानक। मैंने एक चौंकाने वाला आसान ट्यूटोरियल शुरू किया, लेकिन दुर्भाग्य से मैं इसे और नहीं ढूंढ सकता। सबसे अच्छा तरीका (मेरे लिए) एक स्क्रिप्ट के लिए एक साधारण लक्ष्य निर्धारित करना था और इसे प्राप्त करने के तरीके को जानने के लिए एसओ का व्यापक रूप से उपयोग करना था। एक बार पहली शुरुआत हो जाने के बाद, सब आसान हो जाता है। इस तरह से ध्यान दें कि लिपि में लिपि लिखी गई थी, लेकिन साथ ही साथ बाश में भी हो सकता था; कई आदेश सिस्टम कॉल हैं, जिसके माध्यम से निष्पादित किया गया है subprocess। - Jacob Vlijm
... पाइथन को हालांकि समाधानों को जल्दी से उत्पन्न करने और आईएमओ, इसकी पठनीयता के लिए आसान होने का लाभ है। - Jacob Vlijm
@sysadmincrispy मैंने जो सीखा वह था: पाइथन हार्ड वे सीखें (पायथन 2 के लिए) और कुछ कहते हैं पाइथन में गोता लगाएँ (पायथन 3 के लिए) भी अच्छा है। - UniversallyUniqueID