【发布时间】:2021-05-22 22:14:06
【问题描述】:
我在 PyCharm 中编写了这个自动化机器人,但我不知道为什么我的代码执行这么慢?我们真诚地感谢您对改进的任何帮助。
from selenium import webdriver
from InfoApp import keys
import time
def order(k):
driver = webdriver.Chrome(executable_path='driver/chromedriver')
driver.get(k['product_url'])
driver.maximize_window()
driver.find_element_by_xpath('//*[@id="RightRail"]/div/div[4]/fieldset/div/div[7]/label').click()
driver.execute_script("window.scrollTo(0, 1000)")
driver.find_element_by_xpath('//*[@id="floating-atc-wrapper"]/div/button').click()
driver.find_element_by_xpath('//*[@id="PDP"]/div/div[4]/div/div/div/div/div/div/div/div/div/div[3]/div/button[2]').click()
time.sleep(5)
driver.find_element_by_xpath('//*[@id="nav-cart"]/a/div/span').click()
driver.find_element_by_xpath('//*[@id="react-root"]/div/div[4]/button').click()
driver.find_element_by_xpath('//*[@id="qa-guest-checkout"]').click()
driver.find_element_by_xpath('//*[@id="firstName"]').send_keys(k["First_Name"])
if __name__ == '__main__':
order(keys)
【问题讨论】:
-
它有不必要的time.sleep,可以改成使用webdriver等待。
-
我添加了 time.sleep 因为页面没有完全加载,我有一行语法可以向下滚动页面并单击,它没有找到按钮,因为页面没有完全加载所以我添加了 time.sleep。所以我应该使用 driver.implicitly_wait(5) 而不是 time.sleep?
-
自动化中几乎没有使用睡眠
标签: python performance selenium selenium-webdriver pycharm