硒在调用document.location时失去会话

时间:2018-07-14 15:34:50

标签: javascript google-chrome selenium session webdriver

我使用带有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()

    # ...

1 个答案:

答案 0 :(得分:0)

为了匹配文档中的链接,我使用了一种实际上匹配多个链接的模式,其中一些旨在注销。

不时获取新鲜空气是关键。