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

from selenium import webdriver
import time

def outlook():
    driver = webdriver.Chrome()
    x = 'https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=13&ct=1592499273&rver=7.0.6737.0&wp=MBI_SSL&wreply=https%3a%2f%2foutlook.live.com%2fmail%2f0%2finbox%3fRpsCsrfState%3d8a0340e9-f9ec-d8ca-1b7d-c36e5fc0520f%26wa%3dwsignin1.0%26nlp%3d1&id=292841&aadredir=1&CBCXT=out&lw=1&fl=dob%2cflname%2cwld&cobrandid=90015'
driver.get(x)

    loginBox = driver.find_element_by_xpath('//*[@id="i0116"]')
    loginBox.send_keys('email')

    loginButton = driver.find_element_by_xpath('//*[@id="idSIButton9"]')
    loginButton.click()

    passBox = driver.find_element_by_xpath('//*[@id="i0118"]')
    passBox.send_keys('password')

    time.sleep(2)

    passButton = driver.find_element_by_xpath('//*[@id="idSIButton9"]')
    passButton.click()

outlook()

Time.sleep फ़ंक्शन इसलिए है क्योंकि जब कोड बहुत तेज़ी से चलता है तो बटन क्लिक पंजीकृत नहीं होता है। मुद्दा यह है, परिभाषित फ़ंक्शन वाला उपरोक्त कोड सामान्य रूप से काम करता है लेकिन लॉग इन करने के बाद क्रोम विंडो को बंद कर देता है। अगर मैं 'आउटलुक ()' और 'डीफ़ आउटलुक ():' को हटा देता हूं तो यह क्रोम विंडो को बंद किए बिना ठीक काम करता है। .

मैं सोच रहा हूं कि ऐसा क्यों है और अगर कोई समाधान है।

0
theyoungcoder 18 जून 2020, 20:16

1 उत्तर

सबसे बढ़िया उत्तर

वेबड्राइवर इंस्टेंटेशन को बाहर निकालने का प्रयास करें। मुझे लगता है कि यह कचरा इकट्ठा हो रहा है- यही एकमात्र चीज है जो बहुत मायने रखती है।

संपादित करें: इसके अलावा, Driver.get(x) इंडेंट होना चाहिए, मुझे पूरा यकीन है। इसके अलावा, आप ड्राइवर के बासी होने के साथ लाइन में समस्याओं का सामना कर सकते हैं। मैं चीजों को इस प्रकार स्थापित करूंगा:

वेबड्राइवर के साथ। क्रोम () ड्राइवर के रूप में: आउटलुक ()

(और मूल ड्राइवर को हटा दें = webdriver.Chrome() )

from selenium import webdriver
import time

driver = webdriver.Chrome()
def outlook():
    x = 'https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=13&ct=1592499273&rver=7.0.6737.0&wp=MBI_SSL&wreply=https%3a%2f%2foutlook.live.com%2fmail%2f0%2finbox%3fRpsCsrfState%3d8a0340e9-f9ec-d8ca-1b7d-c36e5fc0520f%26wa%3dwsignin1.0%26nlp%3d1&id=292841&aadredir=1&CBCXT=out&lw=1&fl=dob%2cflname%2cwld&cobrandid=90015'
    driver.get(x)

    loginBox = driver.find_element_by_xpath('//*[@id="i0116"]')
    loginBox.send_keys('email')

    loginButton = driver.find_element_by_xpath('//*[@id="idSIButton9"]')
    loginButton.click()

    passBox = driver.find_element_by_xpath('//*[@id="i0118"]')
    passBox.send_keys('password')

    time.sleep(2)

    passButton = driver.find_element_by_xpath('//*[@id="idSIButton9"]')
    passButton.click()

outlook()

0
tomaszps 18 जून 2020, 18:30