使用硒和手动单击时结果不一致

时间:2018-07-10 20:14:55

标签: python selenium

我正在尝试自动登录我的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身份验证页面。

但是当我手动进行操作时:

复制上述网址。

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

uname和pass显示已经填充。

当我按下Enter键时,它使我登录。(否2FA)。

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

有办法解决吗? 可能与此有关吗?

Different results when using Selenium + Python

1 个答案:

答案 0 :(得分:0)

是的,我解决了。我必须从Firefox导入cookie,并将其与Selenium一起使用。从selenium导入webdriver从selenium.webdriver.common.keys导入键导入os os.chdir(“ C:\ Users \ tsingh \ Desktop \ Cookies”)ffprofile = webdriver.FirefoxProfile('C:\ Users \ tsingh \ Desktop \ Cookies ')浏览器= webdriver.Firefox(firefox_profile = ffprofile)