Selenium 代码在主笔记本电脑上运行良好,但在我的另一台笔记本电脑上运行不佳

问题描述 投票:0回答:1

我去年在 Pycharm 中编写了一些代码,用于循环输入政府网站中的增值税号码,以确保它们仍然有效。它在原来的笔记本电脑上仍然可以正常工作,但在我的另一台笔记本电脑上却不能,即使代码完全相同(唯一的调整是电子表格的位置)。我已经在下面给出了我的代码。当我尝试在另一台笔记本电脑上运行它时,出现以下错误。

回溯(最近一次调用最后一次): 文件“C:\用户 eils\Documents\Pycharm Projects\VATChecker\VATChecker.py”,第 30 行, 增值税 = web.find_element_by_xpath('//*[@id="target"]') ^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError:“WebDriver”对象没有属性“find_element_by_xpath”

进程已完成,退出代码为 1

我还注意到的一件事是,导入系统和导入日期时间都是灰色的。我猜这是因为在使用这些导入之前它就崩溃了?

我应该提到,两台笔记本电脑的 Chrome 版本相同(版本 123),并且我为两台笔记本电脑安装了相同的 chromedriver。两台笔记本电脑都是 Windows 64 位,以防您认为这可能是问题所在。

您能告诉我问题是什么吗?非常感谢。

import datetime
import sys

from selenium import webdriver
from openpyxl import workbook, load_workbook
from datetime import date

web = webdriver.Chrome()

wb = load_workbook('C:\\Users\\neils\\Documents\\NSO\\Self Billing agreements\\VATMusiciansCheckerUK.xlsx', data_only=True, read_only=False)

ws = wb.active
x=2
y=1
current_datetime = datetime.datetime.now()
current_datetime.strftime('%x %X')

invalid = ""

while ws.cell(x,1).value !=None:

    ws.cell(x,9).value = ""

    web.get("https://www.tax.service.gov.uk/check-vat-number/enter-vat-details")

    web.implicitly_wait(10)

    VatNumber = ws.cell(x,4).value

    VAT = web.find_element_by_xpath('//*[@id="target"]')
    VAT.send_keys(VatNumber)

    VAT.submit()

    web.implicitly_wait(4)

    registered = web.find_element_by_xpath('/html/body/div[2]')
    if (registered.text.find("Invalid")) > 0:
        ws.cell(x,9).value = "Invalid VAT number"
        invalid = invalid + str(y) + " " + ws.cell(x,1).value + " " + ws.cell(x,2).value + ", "
        y=y+1
    else:
        ws.cell(x,9).value = "Valid VAT number"

        ws.cell(x,6).value = current_datetime

    x=x+1

if invalid == "":

    print("All VAT records are correct")
else:
   print("Invalid VAT records are " + invalid)


wb.save('C:\\Users\\neils\\Documents\\NSO\\Self Billing agreements\\VATMusiciansCheckerUK.xlsx')


python pycharm
1个回答
0
投票

使用

web.find_element(By.XPATH, "xpath")

而不是

web.find_element_by_xpath("xpath")

别忘了添加

from selenium.webdriver.common.by import By

更多参考请参阅this

© www.soinside.com 2019 - 2024. All rights reserved.