Python 如何转发到另一个子页面
今天,我用Python开始了我在Selenium中的第一个项目。 我将要写一个程序,它将自动在计算机上购买物品 网站。我将在未来的更新中扩展这个机器人的功能,但现在我需要做的第一件事是 程序现在应该做什么:Python 如何转发到另一个子页面,python,selenium,forwarding,Python,Selenium,Forwarding,今天,我用Python开始了我在Selenium中的第一个项目。 我将要写一个程序,它将自动在计算机上购买物品 网站。我将在未来的更新中扩展这个机器人的功能,但现在我需要做的第一件事是 程序现在应该做什么: 程序必须登录到站点 程序必须转发到子网站-这就是问题所在。我正在从网站注销,下一步当然不起作用 程序必须选择大小,然后单击“添加到购物车” 如果我不使用转发,而是单击站点的下一部分,则该程序工作正常。这意味着,如果我想从主页转发到产品页面,它将不起作用-我会注销。例如,当我单击home->s
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
import time
browser = webdriver.Chrome(executable_path=r'C:\Users\damia\Desktop\chromedriver.exe')
stronaLog="https://www.zalando-lounge.pl/#/login"
stronaKup="https://www.zalando-lounge.pl/campaigns/ZZO0TCY/categories/5999626/articles/AD115O085-A12"
#getting to the site
browser.get(stronaLog)
#logging
email = browser.find_element_by_id('form-email').send_keys('myemail')
password = browser.find_element_by_id('form-password').send_keys('mypass' + Keys.ENTER)
time.sleep(1)
#save cookies
cookie={'name': 'MojCiasteczek', 'value':'666666'}
browser.add_cookie(cookie)
#forwading to next site and buying product
browser.get(stronaKup)
browser.find_element_by_xpath("//*[contains(text(), '41 1/3')]").click()
browser.find_element_by_css_selector('#addToCartButton > div.articleButton___add-to-cart___1Nngf.core___flipper___3yDf4').click()
在您尝试导航到需要用户登录的url时,身份验证过程似乎尚未完成 正如在评论中所讨论的,为了测试这一理论,添加了一个
睡眠
,以等待身份验证完成,这似乎是可行的
与其使用睡眠
,不如等待某个元素出现在登录页上。我将给出一般示例的步骤:
import
语句:id=“Welcome”
,当然您的元素会有所不同browser.get(stronaKup)
有些东西需要检查。1.页面是否实际使用
键在行后提交(尝试登录)。输入?2.您是否在登录过程完成之前转发?(也就是说,在转发之前,你是否真的看到了成功登录后所期望的页面?)。如果你拿出浏览器。添加cookie(cookie)
行,它能工作吗?(万一这会弄乱你得到的登录令牌…这里有longshot故障排除。)此外,在测试期间隐式设置是一种不好的做法,因为它几乎从未正确使用或更改回正确的位置,并且可能会导致一些令人毛骨悚然的错误,特别是在测试并行运行的情况下。但我不认为这会导致你的问题。@Freester 1先生。如果我删除了其余的代码,它就会删除。对于其余的代码,有时它会将我重定向到te ProcProduct页面,但有时它会显示一个日志页面。为了缩小问题范围,如果使用时间
库->导入时间
。。。并在转发到子页面之前添加此行->time.sleep(10)
?请注意,这不是一个很好的解决方案,只是看看您是否需要等待身份验证完成。这一次。sleep(2)-2对我帮助很大
WebDriverWait(browser,5).until(
EC.presence_of_element_located((By.ID, "Welcome")))
browser.get(stronaKup)