【问题标题】:Inconsistent results when using selenium and when manually clicking使用 selenium 和手动单击时结果不一致
【发布时间】:2018-12-18 18:36:01
【问题描述】:

我正在尝试自动登录我的 salesforce 帐户。当我使用我的代码时:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

browser= webdriver.Firefox()
browser.get("https://xxxxx.my.salesforce.com/? 
SAMLRequest=&startURL=%2Fidp%2Flogin%3Fapp% 
3D0sp0g000000Gmhj&un=xxxxx.xxxxx%40xxxxx.com")

elem=browser.find_element_by_id("username")
elem.send_keys("xxxxx.xxxx@xxxxx.com")
elem_pass=browser.find_element_by_id("password")
elem_pass.send_keys("xxxxxxx")
rem_me=browser.find_element_by_id("rememberUn")
rem_me.click()
elem.send_keys(Keys.ENTER)

如您所见,我将链接传递给 url,传递用户名、密码并记住我。

当我使用 Selenium 运行此程序时,它会转到电子邮件 2FA 身份验证页面。

但是当我手动操作时:

复制上面提到的url。

将其粘贴到firefox浏览器的地址栏中。

uname 和 pass 显示已填充。

当我按 Enter 时,它会登录。(没有 2FA)。

Salesforce 是否以某种方式检测到该请求来自 selenium?

有没有办法绕过它? 会不会和这个有关?

Different results when using Selenium + Python

【问题讨论】:

  • 您是否在隐身模式下手动执行相同操作?因为 selenium 默认以隐身模式运行。可能是差异的原因
  • 是的,我解决了。我不得不从 Firefox 导入 cookie,并将它们与 Selenium 一起使用。 from selenium import webdriver from selenium.webdriver.common.keys import Keys import os os.chdir("C:\\Users\\tsingh\\Desktop\\Cookies") ffprofile = webdriver.FirefoxProfile('C:\\Users\ \tsingh\\Desktop\\Cookies') 浏览器 = webdriver.Firefox(firefox_profile=ffprofile)
  • @SunnySingh 添加您提到的决议作为评论作为答案,以造福未来的读者。

标签: python selenium


【解决方案1】:

是的,我解决了。我不得不从 Firefox 导入 cookie,并将它们与 Selenium 一起使用。 from selenium import webdriver from selenium.webdriver.common.keys import Keys import os os.chdir("C:\Users\tsingh\Desktop\Cookies") ffprofile = webdriver.FirefoxProfile('C:\Users\tsingh\Desktop\Cookies ') 浏览器 = webdriver.Firefox(firefox_profile=ffprofile)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 2012-02-19
    • 2021-12-05
    • 2023-03-23
    相关资源
    最近更新 更多