Hướng dẫn how to handle login pop up in selenium webdriver using python - cách xử lý cửa sổ đăng nhập bật lên trong selenium webdriver bằng cách sử dụng python

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc
    First, we have to get the current window handle from a webdriver which can be done by: 
     

    driver.current_window_handle

    Bàn luận
     

    driver.window_handles

    Nhiều trang web sử dụng đăng nhập bằng phương tiện truyền thông xã hội để làm cho quá trình đăng nhập dễ dàng cho người dùng. Trong hầu hết các trường hợp, nếu nút được nhấp thì một cửa sổ bật lên mới được mở khi người dùng phải nhập thông tin đăng nhập người dùng của họ. Theo cách thủ công, người ta có thể chuyển Windows trong trình duyệt và nhập thông tin đăng nhập cần thiết để đăng nhập. Nhưng trong trường hợp truy cập web không được giám sát bằng WebDriver, trình điều khiển không thể tự động chuyển Windows. Chúng ta cần thay đổi tay cầm cửa sổ trong trình điều khiển để nhập thông tin đăng nhập trong cửa sổ bật lên. Selenium có chức năng chuyển đổi cửa sổ để truy cập nhiều cửa sổ bằng cùng một trình điều khiển. Đầu tiên, chúng ta phải lấy tay cầm cửa sổ hiện tại từ một webDriver có thể được thực hiện bởi: & nbsp; & nbsp;
     

    driver.switch_to.window(login_page)

    Chúng ta cần lưu nó để có được tay cầm cửa sổ hiện tại. Sau khi cửa sổ bật lên xuất hiện, chúng tôi phải lấy danh sách tất cả các tay cầm cửa sổ có sẵn ngay bây giờ. & NBSP; & nbsp;
    Note: To run this code selenium library and geckodriver for firefox is required. The installation of selenium can be done using Python third-party library installer pip. To install selenium run this command 
     

    pip install selenium

    Sau đó, chúng tôi có thể lấy tay cầm cửa sổ của trang đăng nhập từ danh sách này và sau đó chuyển đổi điều khiển. Để chuyển đổi tay cầm cửa sổ, sử dụng: & nbsp; & nbsp;
    Let’s see the code for login on zomato.com using Facebook.
     

    Python3

    Sau khi đăng nhập thành công, chúng tôi có thể sử dụng cùng một phương thức Switch_TO để thay đổi kiểm soát sang trang trước. Việc cài đặt selenium có thể được thực hiện bằng cách sử dụng trình cài đặt thư viện bên thứ ba Python PIP. Để cài đặt Selenium, hãy chạy lệnh này & nbsp; & nbsp;

    Đối với Geckodriver, hãy tải xuống tệp và thêm đường dẫn của nó vào biến đường dẫn hệ điều hành, để nó có thể được kích hoạt từ bất cứ đâu trong thư mục tệp.let, Xem mã để đăng nhập trên zomato.com bằng Facebook. & NBSP;

    from selenium

    driver.window_handles
    0
    driver.window_handles
    1

    from

    driver.window_handles
    3
    driver.window_handles
    0
    driver.window_handles
    5

    driver.switch_to.window(login_page)
    2
    driver.switch_to.window(login_page)
    3
    driver.switch_to.window(login_page)
    4

    driver.switch_to.window(login_page)
    5
    driver.switch_to.window(login_page)
    6
    driver.switch_to.window(login_page)
    7

    driver.switch_to.window(login_page)
    2
    driver.switch_to.window(login_page)
    3
    driver.switch_to.window(login_page)
    4

    driver.switch_to.window(login_page)
    5
    pip install selenium
    2
    driver.switch_to.window(login_page)
    7

    driver.window_handles
    6
    driver.window_handles
    7
    driver.window_handles
    8

    driver.window_handles
    9
    driver.window_handles
    7
    driver.switch_to.window(login_page)
    1

    pip install selenium
    4
    pip install selenium
    5
    pip install selenium
    6
    pip install selenium
    7

    pip install selenium
    8
    pip install selenium
    9
    import time
    from selenium import webdriver
    
    user = 'test_user'
    pw = '*********'
    
    url = 'http://games.espn.com/ffl/leagueoffice?leagueId=579054&seasonId=2018'
    
    driver = webdriver.Chrome("C:\\Users\\abc\\Downloads\\chromedriver\\chromedriver.exe")
    
    driver.get(url)
    
    obj = driver.switch_to_alert
    
    time.sleep(5)
    
    obj.find_element_by_name('email').send_keys(user)
    obj.find_element_by_name('password').send_keys(pw)
    
    0
    driver.window_handles
    7
    import time
    from selenium import webdriver
    
    user = 'test_user'
    pw = '*********'
    
    url = 'http://games.espn.com/ffl/leagueoffice?leagueId=579054&seasonId=2018'
    
    driver = webdriver.Chrome("C:\\Users\\abc\\Downloads\\chromedriver\\chromedriver.exe")
    
    driver.get(url)
    
    obj = driver.switch_to_alert
    
    time.sleep(5)
    
    obj.find_element_by_name('email').send_keys(user)
    obj.find_element_by_name('password').send_keys(pw)
    
    2

    import time
    from selenium import webdriver
    
    user = 'test_user'
    pw = '*********'
    
    url = 'http://games.espn.com/ffl/leagueoffice?leagueId=579054&seasonId=2018'
    
    driver = webdriver.Chrome("C:\\Users\\abc\\Downloads\\chromedriver\\chromedriver.exe")
    
    driver.get(url)
    
    obj = driver.switch_to_alert
    
    time.sleep(5)
    
    obj.find_element_by_name('email').send_keys(user)
    obj.find_element_by_name('password').send_keys(pw)
    
    8
    import time
    from selenium import webdriver
    
    user = 'test_user'
    pw = '*********'
    
    url = 'http://games.espn.com/ffl/leagueoffice?leagueId=579054&seasonId=2018'
    
    driver = webdriver.Chrome("C:\\Users\\abc\\Downloads\\chromedriver\\chromedriver.exe")
    
    driver.get(url)
    
    obj = driver.switch_to_alert
    
    time.sleep(5)
    
    obj.find_element_by_name('email').send_keys(user)
    obj.find_element_by_name('password').send_keys(pw)
    
    9
    AttributeError: 'function' object has no attribute 'find_element_by_name'
    
    0
    AttributeError: 'function' object has no attribute 'find_element_by_name'
    
    1
    driver.window_handles
    7
    AttributeError: 'function' object has no attribute 'find_element_by_name'
    
    3

    import time
    from selenium import webdriver
    
    user = 'test_user'
    pw = '*********'
    
    url = 'http://games.espn.com/ffl/leagueoffice?leagueId=579054&seasonId=2018'
    
    driver = webdriver.Chrome("C:\\Users\\abc\\Downloads\\chromedriver\\chromedriver.exe")
    
    driver.get(url)
    
    obj = driver.switch_to_alert
    
    time.sleep(5)
    
    obj.find_element_by_name('email').send_keys(user)
    obj.find_element_by_name('password').send_keys(pw)
    
    3
    import time
    from selenium import webdriver
    
    user = 'test_user'
    pw = '*********'
    
    url = 'http://games.espn.com/ffl/leagueoffice?leagueId=579054&seasonId=2018'
    
    driver = webdriver.Chrome("C:\\Users\\abc\\Downloads\\chromedriver\\chromedriver.exe")
    
    driver.get(url)
    
    obj = driver.switch_to_alert
    
    time.sleep(5)
    
    obj.find_element_by_name('email').send_keys(user)
    obj.find_element_by_name('password').send_keys(pw)
    
    4
    driver.window_handles
    7
    import time
    from selenium import webdriver
    
    user = 'test_user'
    pw = '*********'
    
    url = 'http://games.espn.com/ffl/leagueoffice?leagueId=579054&seasonId=2018'
    
    driver = webdriver.Chrome("C:\\Users\\abc\\Downloads\\chromedriver\\chromedriver.exe")
    
    driver.get(url)
    
    obj = driver.switch_to_alert
    
    time.sleep(5)
    
    obj.find_element_by_name('email').send_keys(user)
    obj.find_element_by_name('password').send_keys(pw)
    
    6

    import time
    from selenium import webdriver
    
    user = 'test_user'
    pw = '*********'
    
    url = 'http://games.espn.com/ffl/leagueoffice?leagueId=579054&seasonId=2018'
    
    driver = webdriver.Chrome("C:\\Users\\abc\\Downloads\\chromedriver\\chromedriver.exe")
    
    driver.get(url)
    
    obj = driver.switch_to_alert
    
    time.sleep(5)
    
    obj.find_element_by_name('email').send_keys(user)
    obj.find_element_by_name('password').send_keys(pw)
    
    8
    import time
    from selenium import webdriver
    
    user = 'test_user'
    pw = '*********'
    
    url = 'http://games.espn.com/ffl/leagueoffice?leagueId=579054&seasonId=2018'
    
    driver = webdriver.Chrome("C:\\Users\\abc\\Downloads\\chromedriver\\chromedriver.exe")
    
    driver.get(url)
    
    obj = driver.switch_to_alert
    
    time.sleep(5)
    
    obj.find_element_by_name('email').send_keys(user)
    obj.find_element_by_name('password').send_keys(pw)
    
    9
    driver.find_element_by_css_selector("input[type = 'email']").send_keys(user)
    driver.find_element_by_css_selector("input[type = 'password']").send_keys(pw)
    
    0
    AttributeError: 'function' object has no attribute 'find_element_by_name'
    
    1
    driver.window_handles
    7
    AttributeError: 'function' object has no attribute 'find_element_by_name'
    
    3

    import time
    from selenium import webdriver
    
    user = 'test_user'
    pw = '*********'
    
    url = 'http://games.espn.com/ffl/leagueoffice?leagueId=579054&seasonId=2018'
    
    driver = webdriver.Chrome("C:\\Users\\abc\\Downloads\\chromedriver\\chromedriver.exe")
    
    driver.get(url)
    
    obj = driver.switch_to_alert
    
    time.sleep(5)
    
    obj.find_element_by_name('email').send_keys(user)
    obj.find_element_by_name('password').send_keys(pw)
    
    7

    driver.switch_to.window(login_page)
    5
    driver.find_element_by_css_selector("input[type = 'email']").send_keys(user)
    driver.find_element_by_css_selector("input[type = 'password']").send_keys(pw)
    
    9
    obj.find_element_by_xpath('//input[@type="email"]').send_keys(user)
    obj.find_element_by_xpath('//input[@type="password"]').send_keys(user)
    
    0

    driver.switch_to.window(login_page)
    5
    obj.find_element_by_xpath('//input[@type="email"]').send_keys(user)
    obj.find_element_by_xpath('//input[@type="password"]').send_keys(user)
    
    2
    obj.find_element_by_xpath('//input[@type="email"]').send_keys(user)
    obj.find_element_by_xpath('//input[@type="password"]').send_keys(user)
    
    3

    driver.switch_to.window(login_page)
    5
    obj.find_element_by_xpath('//input[@type="email"]').send_keys(user)
    obj.find_element_by_xpath('//input[@type="password"]').send_keys(user)
    
    5
    driver.switch_to.window(login_page)
    7

    obj.find_element_by_xpath('//input[@type="email"]').send_keys(user)
    obj.find_element_by_xpath('//input[@type="password"]').send_keys(user)
    
    7

    driver.switch_to.window(login_page)
    2
    obj.find_element_by_xpath('//input[@type="email"]').send_keys(user)
    obj.find_element_by_xpath('//input[@type="password"]').send_keys(user)
    
    9
    driver.switch_to.window(login_page)
    4

    AttributeError: 'function' object has no attribute 'find_element_by_name'
    
    4
    driver.window_handles
    7
    AttributeError: 'function' object has no attribute 'find_element_by_name'
    
    6
    AttributeError: 'function' object has no attribute 'find_element_by_name'
    
    7

    import time
    from selenium import webdriver
    
    user = 'test_user'
    pw = '*********'
    
    url = 'http://games.espn.com/ffl/leagueoffice?leagueId=579054&seasonId=2018'
    
    driver = webdriver.Chrome("C:\\Users\\abc\\Downloads\\chromedriver\\chromedriver.exe")
    
    driver.get(url)
    
    obj = driver.switch_to_alert
    
    time.sleep(5)
    
    obj.find_element_by_name('email').send_keys(user)
    obj.find_element_by_name('password').send_keys(pw)
    
    8
    import time
    from selenium import webdriver
    
    user = 'test_user'
    pw = '*********'
    
    url = 'http://games.espn.com/ffl/leagueoffice?leagueId=579054&seasonId=2018'
    
    driver = webdriver.Chrome("C:\\Users\\abc\\Downloads\\chromedriver\\chromedriver.exe")
    
    driver.get(url)
    
    obj = driver.switch_to_alert
    
    time.sleep(5)
    
    obj.find_element_by_name('email').send_keys(user)
    obj.find_element_by_name('password').send_keys(pw)
    
    9from8from9selenium 0selenium 1

    selenium 2

    driver.find_element_by_css_selector("input[type = 'email']").send_keys(user)
    driver.find_element_by_css_selector("input[type = 'password']").send_keys(pw)
    
    4
    driver.window_handles
    7
    AttributeError: 'function' object has no attribute 'find_element_by_name'
    
    6
    AttributeError: 'function' object has no attribute 'find_element_by_name'
    
    7
     
     

    Hướng dẫn how to handle login pop up in selenium webdriver using python - cách xử lý cửa sổ đăng nhập bật lên trong selenium webdriver bằng cách sử dụng python


    Tôi đang cố gắng truy cập và đăng nhập vào trang web sau bằng Selenium trong Python:

    'http://games.espn.com/ffl/leagueoffice?leagueId=579054&seasonId=2018'

    Khi trang được truy cập, cửa sổ bật lên sẽ yêu cầu thông tin đăng nhập của người dùng. Mã dưới đây là những gì tôi có cho đến nay.

    import time
    from selenium import webdriver
    
    user = 'test_user'
    pw = '*********'
    
    url = 'http://games.espn.com/ffl/leagueoffice?leagueId=579054&seasonId=2018'
    
    driver = webdriver.Chrome("C:\\Users\\abc\\Downloads\\chromedriver\\chromedriver.exe")
    
    driver.get(url)
    
    obj = driver.switch_to_alert
    
    time.sleep(5)
    
    obj.find_element_by_name('email').send_keys(user)
    obj.find_element_by_name('password').send_keys(pw)
    

    Khi tôi chạy nó, tôi nhận được lỗi này:

    AttributeError: 'function' object has no attribute 'find_element_by_name'
    

    Dựa trên các chủ đề Stackoverflow khác, tôi nghĩ rằng tôi đã tiếp cận chính xác điều này. Bất cứ ai có thể giúp tôi về điều này?

    Hỏi ngày 8 tháng 12 năm 2018 lúc 0:09Dec 8, 2018 at 0:09

    JBenflemingjbenflemingjbenfleming

    753 huy hiệu bạc11 huy hiệu đồng3 silver badges11 bronze badges

    3

    Elemets bạn đang cố gắng tương tác được đặt trong một khung khác. Sử dụng Thanh tra Bạn có thể thấy rằng họ đang ở bên trong selenium 3located in another frame. Using inspector you can see that they are inside selenium 3

    Vì vậy, trước khi thực hiện bất kỳ hành động nào, bạn cần chuyển sang khung đó:switch to that frame:

    selenium 4

    Và sau đó làm những gì bạn cần (lưu ý: Tôi đã sửa người định vị để sử dụng thuộc tính loại vì tôi không thấy rằng các phần tử có thuộc tính tên)note: I corrected locators to use type attribute since I didn't see that elements have name attribute)

    driver.find_element_by_css_selector("input[type = 'email']").send_keys(user)
    driver.find_element_by_css_selector("input[type = 'password']").send_keys(pw)
    

    Hãy nhớ chuyển trở lại bối cảnh mặc định sau khi bạn hoàn thành tương tác với các phần tử từ khung đó:

    selenium 5

    Đã trả lời ngày 8 tháng 12 năm 2018 lúc 11:54Dec 8, 2018 at 11:54

    Hướng dẫn how to handle login pop up in selenium webdriver using python - cách xử lý cửa sổ đăng nhập bật lên trong selenium webdriver bằng cách sử dụng python

    0

    Thử cái này và kiểm tra:

    obj.find_element_by_xpath('//input[@type="email"]').send_keys(user)
    obj.find_element_by_xpath('//input[@type="password"]').send_keys(user)
    

    Ngoài ra, không sử dụng mô -đun thời gian.s ngủ () trong selenium, hãy giữ thói quen sử dụng sự chờ đợi rõ ràng.

    Đã trả lời ngày 8 tháng 12 năm 2018 lúc 2:24Dec 8, 2018 at 2:24

    Radixradixradix

    1981 Huy hiệu vàng1 Huy hiệu bạc11 Huy hiệu đồng1 gold badge1 silver badge11 bronze badges

    3

    Làm thế nào để selen xử lý đăng nhập pop

    Xử lý đăng nhập bật lên trong selen bằng cách truyền thông tin xác thực trong URL. Cửa sổ bật lên xác thực cơ bản giống như cửa sổ bật lên cảnh báo. Khi chúng tôi điều hướng đến một trang web cụ thể yêu cầu thông tin xác thực. Để xử lý việc này, chúng tôi có thể chuyển thông tin đăng nhập (tên người dùng + mật khẩu) cho URL của trang web.by passing the credential in URL. The Basic authentication pop-up is like the alert pop-up . When we navigated to a specific web page that asks for the credential. To handle this, we can pass credentials (Username + Password) to the web page's URL.

    Làm thế nào để Python xử lý cửa sổ bật lên trong selenium?

    Làm thế nào để xử lý cửa sổ bật lên trong selen..
    Người lái xe.getWindowHandles ();Để xử lý các Windows đã mở bởi Selenium WebDriver, bạn có thể sử dụng trình điều khiển.getWindowHandles () để chuyển đổi giữa các cửa sổ ..
    Người lái xe.getWindowHandle ();Khi trang web được tải, bạn có thể xử lý cửa sổ chính bằng cách sử dụng trình điều khiển.getWindowHandle () ..

    Làm thế nào để bạn xử lý các cảnh báo và cửa sổ bật lên trong selenium?

    Bước đầu tiên: Khởi chạy trang web "https://demoqa.com/alerts".Bước thứ 2: Nhấp vào nút "Nhấp vào tôi", như được tô sáng trong ảnh chụp màn hình sau, để xem hộp bật lên PROPPOP.Bước thứ 3: Hộp cảnh báo nhắc mở nơi người dùng có thể nhập văn bản vào hộp văn bản.Sau khi nhập người dùng có thể chấp nhận hoặc loại bỏ hộp cảnh báo.

    Làm cách nào để vượt qua thông tin xác thực trong selen?

    Truyền Tên người dùng và Mật khẩu trong URL Truyền Tên người dùng và Mật khẩu trong URL giúp tránh dấu nhắc đăng nhập.Điều này đạt được bằng cách mã hóa tên người dùng và mật khẩu trong URL, nghĩa là, Chi tiêu tên người dùng: Mật khẩu@ cho tên máy chủ trong URL.encoding the username and password in the URL, that is, prepending username:password@ to the hostname in the URL.