bansh98 2022-08-04 08:02 采纳率: 100%
浏览 17
已结题

关于#selenium#的问题,如何解决?

我编写了一个淘宝抢购的程序

from selenium import webdriver
import datetime
import time

# 启动火狐浏览器的驱动器
driver = webdriver.Firefox()
# 最大化浏览器
driver.maximize_window()


# 传入用户名密码,登录淘宝
def login():
    # 打开淘宝
    driver.get("https://www.taobao.com")

    # 查找文本,登录
    if driver.find_element_by_link_text("亲,请登录"):
        driver.find_element_by_link_text("亲,请登录").click()

    print("请在30秒内完成扫码")
    time.sleep(30)

    driver.get("https://cart.taobao.com/cart.htm")
    time.sleep(3)

    # 点击购物车里全选按钮
    if driver.find_element_by_id("J_SelectAll1"):
        driver.find_element_by_id("J_SelectAll1").click()
    time.sleep(3)
    now = datetime.datetime.now()
    print('login success:', now.strftime('%Y-%m-%d %H:%M:%S'))


def buy(buytime):
    while True:
        now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        if now == buytime:
            try:
                # 点击结算按钮
                if driver.find_element_by_id("J_Go"):
                    driver.find_element_by_id("J_Go").click()
                    print("结算成功")
                    submit()
            except:
                pass
        print(now)
        time.sleep(0.01)


def submit():
    while True:
        try:
            if driver.find_element_by_link_text('提交订单'):
                driver.find_element_by_link_text('提交订单').click()
                now1 = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
                print("抢购成功时间:%s" % now1)
                break
        except:
            print("再次尝试提交订单")
            time.sleep(0.01)


if __name__ == "__main__":
    # 登录
    login()
    # 设置抢购时间
    buy('2022-02-16 09:34:00')


结果出现了

C:\Users\86139\PycharmProjects\pythonProject5\venv\Scripts\python.exe C:/Users/86139/PycharmProjects/pythonProject5/1.py 
Traceback (most recent call last):
  File "C:\Users\86139\PycharmProjects\pythonProject5\1.py", line 65, in <module>
    login()
  File "C:\Users\86139\PycharmProjects\pythonProject5\1.py", line 17, in login
    if driver.find_element_by_link_text("亲,请登录"):
AttributeError: 'WebDriver' object has no attribute 'find_element_by_link_text'
Process finished with exit code 1

上面这样的错误,我不知道这是什么问题

本人刚刚开始学习python,希望各位帮忙解决一下这个问题

  • 写回答

2条回答 默认 最新

  • 快乐小土狗 2022-08-04 09:25
    关注

    你是selenium 应该是4.0版本的,
    没有find_element_by_link_text方法了,改用find_element方法和find_elements方法加By模块进行定位了。
    https://blog.csdn.net/m0_72501048/article/details/125702559

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月12日
  • 已采纳回答 8月4日
  • 创建了问题 8月4日

悬赏问题

  • ¥15 vue3页面el-table页面数据过多
  • ¥100 vue3中融入gRPC-web
  • ¥15 kali环境运行volatility分析android内存文件,缺profile
  • ¥15 写uniapp时遇到的问题
  • ¥15 vs 2008 安装遇到问题
  • ¥15 matlab有限元法求解梁带有若干弹簧质量系统的固有频率
  • ¥15 找一个网络防御专家,外包的
  • ¥100 能不能让两张不同的图片md5值一样,(有尝)
  • ¥15 informer代码训练自己的数据集,改参数怎么改
  • ¥15 请看一下,学校实验要求,我需要具体代码