无法单击selenium文本警报

2024-06-30 07:26:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图单击selenium中的文本警报,但当我使用click函数时,它无法识别该命令

我的代码如下:

chrome.find_element_by_xpath('/html/body/form/table/tbody/tr[2]/td/div/table/tbody/tr[2]/td/table[1]/tbody/tr[14]/td[1]/input[1]').click()

sleep(3)

alert = WebDriverWait(s.chrome, 3).until(EC.alert_is_present(),"Confirma a 
operação?")

alert.accept

print("alert accepted")

这是我尝试单击的页面元素:

input type="SUBMIT" name="BTN_ENTER" value="Confirmar" class="Button" gxevent="EENTER." onclick="if( confirm( 'Confirma a operação?')) {GX_setgridevent( 45,  12);GX_setevent('EENTER.');} else return false;" gxctx="_" onfocus="gxonfocus2(this, 59,'',45)" gxoldvalue="Confirmar"

我看到在我配置它之后,它有一个名为one click的选项,但我不知道必须为它设置什么值才能识别元素


Tags: 元素inputseleniumtablealertoperachrometr
1条回答
网友
1楼 · 发布于 2024-06-30 07:26:05

当您检查alert_is_present()的内部实现时,请在内部处理switch_to.alert,以便我们可以处理警报

chrome.find_element_by_xpath("//input[@name='BTN_ENTER']").click()

WebDriverWait(chrome, 3).until(EC.alert_is_present(),'Confirma a operação?').accept()
print("alert accepted")

更新

根据UnexpectedAlertPresentException,您可以按如下方式处理它

chrome_options = Options()
chrome_options.set_capability('unhandledPromptBehavior', 'accept')
driver = webdriver.Chrome(options=chrome_options)

相关问题 更多 >