Xem thảo luận
Cải thiện bài viết
Lưu bài viết
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_handles0
driver.window_handles1
from
driver.window_handles3
driver.window_handles0
driver.window_handles5
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 selenium2
driver.switch_to.window[login_page]7
driver.window_handles6
driver.window_handles7
driver.window_handles8
driver.window_handles9
driver.window_handles7
driver.switch_to.window[login_page]1
pip install selenium4
pip install selenium5
pip install selenium6
pip install selenium7
pip install selenium8
pip install selenium9
import time
from selenium import webdriver
user = 'test_user'
pw = '*********'
url = '//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]
0driver.window_handles7
import time
from selenium import webdriver
user = 'test_user'
pw = '*********'
url = '//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]
2import time
from selenium import webdriver
user = 'test_user'
pw = '*********'
url = '//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]
8import time
from selenium import webdriver
user = 'test_user'
pw = '*********'
url = '//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]
9AttributeError: 'function' object has no attribute 'find_element_by_name'
0AttributeError: 'function' object has no attribute 'find_element_by_name'
1driver.window_handles7
AttributeError: 'function' object has no attribute 'find_element_by_name'
3import time
from selenium import webdriver
user = 'test_user'
pw = '*********'
url = '//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]
3import time
from selenium import webdriver
user = 'test_user'
pw = '*********'
url = '//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]
4driver.window_handles7
import time
from selenium import webdriver
user = 'test_user'
pw = '*********'
url = '//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]
6import time
from selenium import webdriver
user = 'test_user'
pw = '*********'
url = '//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]
8import time
from selenium import webdriver
user = 'test_user'
pw = '*********'
url = '//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]
9driver.find_element_by_css_selector["input[type = 'email']"].send_keys[user]
driver.find_element_by_css_selector["input[type = 'password']"].send_keys[pw]
0AttributeError: 'function' object has no attribute 'find_element_by_name'
1driver.window_handles7
AttributeError: 'function' object has no attribute 'find_element_by_name'
3import time
from selenium import webdriver
user = 'test_user'
pw = '*********'
url = '//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]
7driver.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]
9obj.find_element_by_xpath['//input[@type="email"]'].send_keys[user]
obj.find_element_by_xpath['//input[@type="password"]'].send_keys[user]
0driver.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]
2obj.find_element_by_xpath['//input[@type="email"]'].send_keys[user]
obj.find_element_by_xpath['//input[@type="password"]'].send_keys[user]
3driver.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]
5driver.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]
7driver.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]
9driver.switch_to.window[login_page]4
AttributeError: 'function' object has no attribute 'find_element_by_name'
4driver.window_handles7
AttributeError: 'function' object has no attribute 'find_element_by_name'
6AttributeError: 'function' object has no attribute 'find_element_by_name'
7import time
from selenium import webdriver
user = 'test_user'
pw = '*********'
url = '//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]
8import time
from selenium import webdriver
user = 'test_user'
pw = '*********'
url = '//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]
9from
8from
9selenium
0selenium
1selenium
2
4driver.find_element_by_css_selector["input[type = 'email']"].send_keys[user]
driver.find_element_by_css_selector["input[type = 'password']"].send_keys[pw]
driver.window_handles
7
6AttributeError: 'function' object has no attribute 'find_element_by_name'
7 AttributeError: 'function' object has no attribute 'find_element_by_name'
Tôi đang cố gắng truy cập và đăng nhập vào trang web sau bằng Selenium trong Python:
'//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 = '//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
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