我一直在使用下面的代码使用 Facebook 凭据登录 Spotify。
这是我使用的代码:
__author__ = 'hoaxcracker'
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
Time_list=[]
driver = webdriver.Firefox()
driver.get("https://play.spotify.com")
driver.find_element_by_id('fb-login-btn').send_keys(Keys.RETURN)
driver.find_element_by_id('email').send_keys("email@domain.com")
time.sleep(1)
driver.find_element_by_id('pass').send_keys("passwrd")
time.sleep(1)
我还尝试使用来自 Switch to web dialog box in selenium webdriver: Python 的以下代码但没有帮助。我发现 fb 登录的工作方式有点不同,因为它每次都会生成新的 token 。
所以之后的新代码是
__author__ = 'hoaxcracker'
from splinter import browser
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
Time_list=[]
driver = webdriver.Firefox()
driver.get("https://play.spotify.com")
parent_h = browser.current_window_handle
driver.find_element_by_id('fb-login-btn').send_keys(Keys.RETURN) # click on the link that opens a new window
handles = browser.window_handles # before the pop-up window closes
handles.remove(parent_h)
browser.switch_to_window(handles.pop())
driver.find_element_by_id('email').send_keys("email@domain.com")
time.sleep(1)
driver.find_element_by_id('pass').send_keys("passwrd")
time.sleep(1)
# do stuff in the popup
# popup window closes
browser.switch_to_window(parent_h)
然后我得到这个错误!
Traceback (most recent call last): File "/Users/veer/PycharmProjects/DryRun/login.py", line 12, in parent_h = browser.current_window_handle AttributeError: 'module' object has no attribute 'current_window_handle'
Process finished with exit code 1
如有任何帮助,我们将不胜感激。
TIA
最佳答案
尝试以下代码行以正确切换到 Facebook
授权窗口:
driver.switch_to_window(driver.window_handles[1])
完整代码可能如下所示:
Time_list=[]
driver = webdriver.Firefox()
driver.get("https://play.spotify.com")
driver.find_element_by_id('fb-login-btn').send_keys(Keys.RETURN) # click on the link that opens a new window
driver.switch_to_window(driver.window_handles[1])
driver.find_element_by_id('email').send_keys("email@domain.com")
time.sleep(1)
driver.find_element_by_id('pass').send_keys("passwrd")
time.sleep(1)
# do stuff in the popup
driver.find_element_by_name('login').click()
time.sleep(1)
# No need to switch to main window (if authorization successful)
关于python - 无法切换到 Facebook 登录警报,因为窗口名称每次都更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41165792/