Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以´;t使用Python按Selenium中的按钮_Python_Html_Selenium_Selenium Webdriver - Fatal编程技术网

我可以´;t使用Python按Selenium中的按钮

我可以´;t使用Python按Selenium中的按钮,python,html,selenium,selenium-webdriver,Python,Html,Selenium,Selenium Webdriver,在填写一张表格之后,我必须进入一个框架内的表格。有一个提交按钮,在同一个框架内,但我不能按下按钮 这是按钮(计算精度): 我试过把按钮按进按出画面。在框架外,它说它找不到它,当它在框架内时,它不会给出错误,但它不会执行 driver.get("https://www.asefasalud.es/") time.sleep(2) #cerrar popUp: driver.find_element_by_class_name("sj-close-popup&qu

在填写一张表格之后,我必须进入一个框架内的表格。有一个提交按钮,在同一个框架内,但我不能按下按钮

这是按钮(计算精度):

我试过把按钮按进按出画面。在框架外,它说它找不到它,当它在框架内时,它不会给出错误,但它不会执行

driver.get("https://www.asefasalud.es/")
time.sleep(2) 

#cerrar popUp:
driver.find_element_by_class_name("sj-close-popup").click() 

#form:
driver.switch_to.frame(driver.find_element(By.CSS_SELECTOR, "[name='calcular-seguro-medico']"))
driver.find_element_by_id("inputDiafnac1").send_keys("02") 
driver.find_element_by_id("inputMesfnac1").send_keys("02")
driver.find_element_by_id("inputAnniofnac1").send_keys("1990") 
driver.find_element_by_id("cPostalBasico").send_keys("41011")

#button:
#time.sleep(2)
driver.find_element_by_xpath("//a[@id='botonValidar']").click()
driver.switch_to.default_content()
我还尝试过使用ActionChains和使用send\u key(key.ENTER)-send\u key(“\n”),而不是click()。使用ActionChains时,它的工作原理与不使用ActionChains时相同。使用send_键,我得到以下错误:


我不知道会发生什么。

请将botonValidar的
xpath
更改为

driver.find_element_by_xpath("//*[@id=\"botonValidar\"]/parent::div").click()

你的代码运行良好。如果它解决了您的问题,请将其标记为答案。

我通过在框架内使用execute_脚本解决了它:

driver.execute_script("arguments[0].click();", driver.find_element_by_id("botonValidar"))

我试过你的代码块,我看不出有什么问题。它工作正常,没有任何错误,即使是你提到的那一个也不用时间。睡眠等待,而是使用WebDriverWait。像这样使用它将等待200秒或直到元素可从selenium.webdriver.support以ec形式从selenium.webdriver.support.ui导入预期的条件从selenium.webdriver.common.by导入等待时间=200#200秒WebDriverWait(驱动程序,等待时间)。直到(位于((By.XPATH,XPATH))的元素的可见性)页面的屏幕截图是可以的,HTML的屏幕截图不是。我们不能在屏幕截图上尝试定位器等,我们可以将HTML作为文本。另外,将错误文本复制/粘贴到您的问题中,而不是屏幕截图。@KumarShivamRay。当按下按钮的代码在框架内时,它不会给出错误,但不会执行。我也使用了WebDriverWait,但结果相同。@JeffC。实际上,当我尝试其他方法使其运行时,会出现错误。使用该代码时,不会出现错误,但在firefox WebDriver中它不会运行。我尝试了它,并且使用了id,但它仍然不会运行。