驱动程序自动代码直接返回起始 URL

Driver automated code directs back to the starting URL

这是打开网站并填写 PNR 值和加载发票的代码。单击发票而不是转到发票详细信息后,它会返回到开始 URL

from selenium import webdriver


driver = webdriver.Chrome(executable_path='C:/webdrivers/chromedriver.exe') # Get local session(use webdriver.Chrome() for chrome) 
driver.implicitly_wait(10)
driver.get("url") # load page from some url

driver.find_element_by_xpath("//input[@id='PNRId']").send_keys("HI19GJ")
driver.find_element_by_xpath("//input[@id='GstRetrievePageInteraction']").click()

driver.implicitly_wait(10)
element=driver.find_element_by_link_text('View Invoice')
driver.execute_script("arguments[0].click();", element)

有时上面的代码会正确打开单击“查看发票”选项卡后应打开的页面,有时它会定向到起始页面。为什么会这样?有人可以指导我吗?

起始页URL: Start URL

发票检索图像: Invoice Generated

查看发票的HTML代码: enter image description here

如果我使用此代码 element=driver.find_element_by_css_selector('a[href*="GSTInvoice"]') driver.execute_script("arguments[0].click();", element) 它显示浏览器不兼容,link 它是包含发票但我无法查看的浏览器。

谁能指导我解决这个问题?

请检查代码段。当我使用 name 标签找到元素时,它每次都对我有用。它应该也适合你。

element = driver.find_element_by_name('ViewInvoice')
element.click();

编辑

from selenium import webdriver
driver = webdriver.Chrome(executable_path=r'C:/webdrivers/chromedriver.exe') # Get local session(use webdriver.Chrome() for chrome) 
driver.implicitly_wait(3)
driver.get("https://book.goindigo.in/Booking/GSTInvoiceDetails") # load page from some url
driver.find_element_by_xpath("//input[@id='PNRId']").send_keys("HI19GJ")
driver.find_element_by_xpath("//input[@id='GstRetrievePageInteraction']").click()
element = driver.find_element_by_name('ViewInvoice')
element.click()