今天我用Python开始了我的第一个Selenium项目。 我要写一个程序,可以自动在网上购买商品 网站。我将在将来的更新中扩展这个机器人的功能,但现在我需要做的第一件事。你知道吗
程序现在应该做什么:
如果我不使用转发,但单击站点的下一部分,程序就可以正常工作。这意味着,如果我想从主页转到产品页,它不起作用-我会注销。例如,当我单击home->;shoes->;shoe的名称时,一切正常。你知道吗
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时,身份验证过程似乎尚未完成。你知道吗
正如在评论中所讨论的,为了测试这个理论,添加了一个
sleep
来等待身份验证完成,这似乎是可行的。你知道吗与使用
sleep
相比,更健壮的方法是等待某个元素出现在登录页上。我将给出一般示例的步骤:import
语句:在登录后确定登录页上的某些元素。。。比如欢迎短信,或者其他不在登录页面上的东西。对于这个例子,假设您标识的元素有一个
id="Welcome"
,当然您的元素会有所不同。使用以下代码等待该元素:
此代码将最多等待5秒钟,以便该元素出现,但一旦找到它就会返回。将秒数更改为等待登录所需的最长时间。你知道吗
之后,您应该能够以经过身份验证的用户身份导航到其他url:
相关问题 更多 >
编程相关推荐