Python Selenium无法找到我的元素(按钮)

Python Selenium无法找到我的元素(按钮),python,selenium,selenium-webdriver,xpath,css-selectors,Python,Selenium,Selenium Webdriver,Xpath,Css Selectors,我想用selenium按下按钮,昨天我遇到了一个无法按下的问题,结果发现我的按钮在一个环绕整个网页的iframe中。这修正了它: from time import sleep driver.switch_to.frame(driver.find_element_by_id("includedPage")) sleep(10) element = driver.find_element_by_xpath("//input[contains(@id, 'workbenchLst:j_id_id507

我想用selenium按下按钮,昨天我遇到了一个无法按下的问题,结果发现我的按钮在一个环绕整个网页的iframe中。这修正了它:

from time import sleep
driver.switch_to.frame(driver.find_element_by_id("includedPage"))
sleep(10)
element = driver.find_element_by_xpath("//input[contains(@id, 'workbenchLst:j_id_id507') and @value='Add']")
element.click()
点击它之后,我想对页面上的其他按钮执行相同的操作,但我不能一直得到
无法定位iframe和页面中所有其他元素的元素
(该页面在td中也有一个iframe,如下所示):



如何在该页面中获取按钮并在找到它后禁用iframe的效果影响?

当您单击iframe并需要返回上一帧或默认帧时,应使用
驱动程序。切换到.default\u content()
,然后您可以单击默认内容上的按钮


这会将上下文切换到默认帧,您可以再次对其进行操作。

如果两个按钮都属于不同的iframe,则您必须将web驱动程序的焦点切换到父级,然后再次将其切换到第二个iframe。大概是这样的:

driver.switch_to.frame(driver.find_element_by_id("includedPage"))
sleep(10)
element = driver.find_element_by_xpath("//input[contains(@id, 'workbenchLst:j_id_id507') and @value='Add']")
element.click()

driver.switch_to.default_content()  

driver.switch_to.frame(driver.find_element_by_id("id of different iframe"))

element2 = driver.find_element_by_xpath(" xpath of 2nd button")
element2.click()

你可以在上面分享的我的代码中添加它,以确保在哪个阶段添加它,谢谢。Steve你可以在找到元素之前添加它,例如,你想单击的按钮你可以执行
驱动程序。切换到.frame(driver.find\u element by\u id(“includedPage”)
然后单击iframe上的元素,并可以使用
元素。单击()
然后,如果要切换到默认内容,可以使用
驱动程序。切换到.default\u content()
,然后可以单击默认内容上的其他元素。第一页中的iframe将其全部环绕(所有内容都在其中),之后的页面共享相同的iframe id和url,但它是一个不同的内容,所以我要说不,不是相同的iframe。
driver.switch_to.frame(driver.find_element_by_id("includedPage"))
sleep(10)
element = driver.find_element_by_xpath("//input[contains(@id, 'workbenchLst:j_id_id507') and @value='Add']")
element.click()

driver.switch_to.default_content()  

driver.switch_to.frame(driver.find_element_by_id("id of different iframe"))

element2 = driver.find_element_by_xpath(" xpath of 2nd button")
element2.click()