为什么我的xpath不工作与硒?



我需要写一个脚本,给定用户的输入在我的网站,它连接到这个页面提交的号码和下载文件。问题是,xpath根本不起作用。我做错了什么?

这是视图(我删除了与问题无关的部分):

from django.shortcuts import render, HttpResponse
import requests
from django.views.generic import FormView

from time import sleep
from selenium import webdriver
class ConstanciaInscripcion(FormView):
def get(self, request):
return render(request, 'app/constancia-inscripcion.html')

def post(self,request):
form = MonotributoForm(request.POST)
email = request.POST['Email']
cuit_r = int(request.POST["CUIT"])

#Selenium script
DRIVER_PATH = 'C:/Users/python/chromedriver.exe'
driver = webdriver.Chrome(executable_path=DRIVER_PATH)
driver.get('https://seti.afip.gob.ar/padron-puc-constancia-internet/ConsultaConstanciaAction.do')
driver.implicitly_wait(20)
cuit = driver.find_element_by_xpath("//input[@id='cuit']").send_keys(cuit_r)
submit = driver.find_element_by_xpath("//input[@id='btnConsultar']").click()

return render(request, 'app/constancia-inscripcion.html')

该网站也有一个验证码,我给了一个方法来处理它,我也应该添加验证码字段的驱动程序。Find_element并传递方法?

也许你的隐式等待方法还不够。您应该尝试显式等待。基本上,显式等待是您定义的一段代码,用于在代码中继续执行之前等待某个条件发生:Source

另一个原因可能是动态id。也许你的网站每次都创建不同的Id。你应该找到其他每次不改变的属性,然后根据这个属性改变你的Xpath,或者你可以使用完整的(绝对的)Xpath,它不需要任何特定的属性名。

最新更新