我去年在 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')
使用
web.find_element(By.XPATH, "xpath")
而不是
web.find_element_by_xpath("xpath")
别忘了添加
from selenium.webdriver.common.by import By
更多参考请参阅this。