我使用带有Selenium的Chrome网络驱动程序登录网站。 当我单击它的href为Javascript函数“ document.location”的链接时,由于它被重定向到登录页面,因此显然会失去会话。
<a href="javascript:document.location='/'+'some-location'+'/'">A link</a>
在我看来,这可能不是错误,而是没有我自己进行特定干预的预期行为,但是我找不到解决办法。
编辑:
from selenium import webdriver
from fake_useragent import UserAgent
import time
import random
loginurl = 'https://www.website.com/myads/'
accounts = [
["login1", "pass1"],
["login2", "pass2"]
]
print("Generating the browser.")
user_agent = UserAgent().random
print("Using user agent : " + user_agent)
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--nogui")
chrome_options.add_argument("--nosandbox")
chrome_options.add_argument(f'user-agent={user_agent}')
browser = webdriver.Chrome(chrome_options=chrome_options)
i = 0
while i < len(accounts):
print("Getting to the login page.")
browser.get(loginurl)
print("Waiting...")
time.sleep(random.uniform(2, 4))
print("Filling login form.")
print("Email : " + accounts[i][0])
email_input = browser.find_element_by_id("email")
email_input.send_keys(accounts[i][0])
print("Waiting...")
time.sleep(random.uniform(2, 4))
print("Password : " + accounts[i][1])
password_input = browser.find_element_by_id("password")
password_input.send_keys(accounts[i][1])
print("Waiting...")
time.sleep(random.uniform(2, 4))
print("Loggin in.")
submit = browser.find_element_by_class_name("submit").click()
cookies = browser.manage().get_cookies()
print("Waiting...")
time.sleep(random.uniform(2, 4))
print("Getting to my ads.")
browser.find_element_by_css_selector("a[href*='myads']").click()
# ...
答案 0 :(得分:0)
为了匹配文档中的链接,我使用了一种实际上匹配多个链接的模式,其中一些旨在注销。
不时获取新鲜空气是关键。