python 无论如何,文本字段“元素不可交互”

0md85ypi  于 2023-03-16  发布在  Python
关注(0)|答案(1)|浏览(102)

我正在尝试自动从增值税检查网站截图。示例CSV文件有三列:第一个客户名称,第二个国家代码和第三个增值税号码。该代码可以从下拉列表中选择国家,但不能在文本字段中输入增值税号码(元素不可交互)WebDriverWait没有帮助。

import csv
import datetime
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

with open('data.csv', 'r') as file:
    reader = csv.reader(file)
    data = list(reader)
client_name = data[1][0]
country = data[1][1]
vat_number = data[1][2]

driver = webdriver.Chrome()
driver.get('https://ec.europa.eu/taxation_customs/vies/#/vat-validation')

dropdown = Select(driver.find_element(By.XPATH,'//select[@id="select-country"]'))
dropdown.select_by_value(country)

driver.implicitly_wait(5) 

vat_field = driver.find_element(By.XPATH,'//*[@id="vat-validation-form"]').send_keys(vat_number)

submit_button = driver.find_element_by_id('submit')
submit_button.click()

now = datetime.datetime.now()
date_string = now.strftime('%Y-%m-%d_%H-%M-%S')
filename = f'{date_string}_{client_name}.png'
driver.save_screenshot(filename)

driver.quit()

如有任何建议,欢迎提出

zte4gxcn

zte4gxcn1#

提供的XPath没有标识INPUT元素,而是标识了FORM元素,这就是为什么它抛出ElementNotInteractableException
尝试使用下面的XPath来标识INPUT元素。

//input[@formcontrolname="vatNumber"]

理想情况下应该是

driver.find_element(By.XPATH,'//input[@formcontrolname="vatNumber"]').send_keys(vat_number)

相关问题