youdaun 2022-09-26 23:31 采纳率: 100%
浏览 832
已结题

显示WebDriver没有这个方法啊find_element_by_link_text'

#python 我从网上学了一个秒杀脚本,从网上查了WebDriver提供的8种元素定位方法,但为什么这里显示WebDriver没有这个方法啊find_element_by_link_text',求告知

from selenium import  webdriver
import datetime
import time

# 连接Chrome浏览器
driver = webdriver.Chrome()

def login(url):
    # 打开淘宝登录页,并进行登录
    driver.get("https://www.taobao.com/")
    time.sleep(3)
    if driver.find_element_by_link_text("亲,请登录"):
        driver.find_element_by_link_text("亲,请登录").click()
        print("请在20秒内完成登录")
        time.sleep(3)
        driver.get(url)
    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_LinkBuy"):
                    print("速度点击!!!")
                    driver.find_element_by_id("J_LinkBuy").click()
                    time.sleep(0.09)
                    while now >= buytime:
                        try:
                            print('正在提交订单')
                            if driver.find_element_by_class_name('go-btn'):
                                driver.find_element_by_class_name('go-btn').click()
                        except:
                            time.sleep(0.02)
            except:
                time.sleep(0.08)
        print(now)
        time.sleep(0.05)

if __name__ == "__main__":
    times = input('请输入抢购时间:时间格式:2021-12-29 19:45:00.000000')
    url = input('请输入抢购地址')
    login(url)
    buy(times)


运行结果及报错内容
Traceback (most recent call last):
  File "C:\Users\32739\Desktop\python自动化\shopping_taobao.py", line 48, in <module>
    login(url)
  File "C:\Users\32739\Desktop\python自动化\shopping_taobao.py", line 12, in login
    if driver.find_element_by_link_text("亲,请登录"):
AttributeError: 'WebDriver' object has no attribute 'find_element_by_link_text'


我想要达到的结果

使整个代码能够正常运行

  • 写回答

2条回答 默认 最新

  • honestman_ 2022-09-26 23:42
    关注

    新版本全都换成这种了:
    from selenium.webdriver.common.by import By
    • find_element(By.ID,”loginName”)
    • find_element(By.NAME,”SubjectName”)
    • find_element(By.CLASS_NAME,”u-btn-levred”)
    • find_element(By.TAG_NAME,”input”)
    • find_element(By.LINK_TEXT,”退出”)
    • find_element(By.PARTIAL_LINK_TEXT,”退”)
    • find_element(By.XPATH,”.//*[@id=’Title”)
    • find_element(By.CSS_SELECTOR,”[type=submit]”)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • youdaun 2022-09-27 17:18
    关注

    [

    
    ```python
    from selenium.webdriver.common.by import By
    from selenium import webdriver
    import datetime
    import time
    
    # 连接Chrome浏览器
    driver = webdriver.Chrome()
    
    def login(url):
        # 打开淘宝登录页,并进行登录
        driver.get("https://www.taobao.com/")
        time.sleep(3)
        if driver.find_element(By.LINK_TEXT,"亲,请登录"):
            driver.find_element(By.LINK_TEXT,"亲,请登录").click()
            print("请在20秒内完成登录")
            time.sleep(3)
            driver.get(url)
        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.LINK_TEXT,"立即购买"):
                        print("速度点击!!!")
                        driver.find_element(By.LINK_TEXT,"立即购买").click()
                        time.sleep(0.09)
                        while now >= buytime:
                            try:
                                print('正在提交订单')
                                if driver.find_element(By.LINK_TEXT,"提交订单"):
                                    driver.find_element(By.LINK_TEXT,"提交订单").click()
                            except:
                                time.sleep(0.02)
                except:
                    time.sleep(0.08)
            print(now)
            time.sleep(0.05)
    
    if __name__ == "__main__":
        times = input('请输入抢购时间:时间格式:2021-12-29 19:45:00.000000')
        url = input('请输入抢购地址')
        login(url)
        buy(times)
    
    

    ```

    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月5日
  • 已采纳回答 9月27日
  • 创建了问题 9月26日

悬赏问题

  • ¥20 关于TRPD(波形特征)局部放电特征提取
  • ¥15 C语言快速排序函数纠错
  • ¥15 C#的一个应用程序书写
  • ¥65 页面调接口时加载卡住不响应
  • ¥35 用C语言解决编程问题
  • ¥15 unity硬件连接与使用
  • ¥15 鱼缸加热棒的数据分析或者实际案例也行
  • ¥15 postgresql11安装完成后,pgadmin无法启动
  • ¥15 (标签-无人机|关键词-Matlab代码)
  • ¥15 执行shell脚本提示参数太多