硒导航而无需注销



我想做的是在Chrome中关注一个Instagram帐户,隐身模式。问题是,在我成功登录后,驱动程序会获得帐户的链接(调用以下函数时(,而我不再登录。

我在没有自动驱动程序的情况下执行了相同的操作,没有问题。

这是我的 2 个函数:

def login(driver):
# Auto log in to instagram
driver.get('https://www.instagram.com/accounts/login/')
# Wait until the screen has loaded
try:
element = WebDriverWait(driver, 15).until(
EC.presence_of_all_elements_located((By.CLASS_NAME, "_ph6vk"))
)
except Exception:
print("Accounts page timed out")
input_elem = driver.find_elements_by_class_name("_ph6vk")
input_elem[0].send_keys("username")
input_elem[1].send_keys("password")
login_button = driver.find_element_by_class_name("_qv64e")
login_button.click()
def follow(driver, account_to_follow_link):
driver.get(account_to_follow_link)
#driver.close()

这是我的驱动程序实例化及其选项:

chrome_options = Options()
chrome_options.add_argument("--incognito")
#chrome_options.add_argument("--headless")
#chrome_options.add_argument("--window-size=1920x1080")

# Path of current driver & instantiation of driver object
os.chdir(r'C:ig_automation')
driver = os.getcwd() +"\chromedriver.exe"
driver = webdriver.Chrome(chrome_options=chrome_options, 
executable_path=driver)

我想出了一个解决方法。我没有先登录Instagram,而是使用了这个操作顺序:

  • 打开了我想关注的帐户的链接
  • 单击关注按钮 ->它将浏览器重定向到登录页面
  • 登录 ->自动将浏览器重定向到我想关注的帐户(无需注销(
  • 单击关注按钮

就是这样 - 这种解决方法适用于我的情况,因为我只想做一个动作,但如果你想做更多,你应该考虑另一个解决方案

driver.get(account_to_follow_link)会导致硒离开您刚刚登录的页面,从而有效地将您注销。你不能使用driver.get().

更成功的方法是在登录成功后在页面上找到服务器加载的元素,并切换到页面已加载的元素或上下文。这意味着可能使用driver.switch_to...()

如果我从相同的范围、相同的方法或同一对象中发出更多 get 请求(如果您创建一个实现驱动程序的类(,Selenium 不会注销我。这将保留驱动程序 Cookie。您可以使用在全局范围内声明驱动程序创建一个类,或者传递driver.get_cookies()以保留站点 Cookie,并保持登录状态。

未确认:
这也可以通过简单地在 python 程序的全局范围内声明驱动程序来实现。

相关内容

  • 没有找到相关文章

最新更新