我正在尝试切换到上一帧。
在我的代码中
- 我切换到框架(BRCT1Frame),
- 点击打开新窗口的按钮
- 切换到新窗口
- 切换到窗口内的框架
- 插入数据并保存,同时关闭窗口和框架
但是,我需要切换到 BRVT1Frame 之前的帧。
这是我的代码:
BRT1Frame=driver.switch_to_frame(driver.find_element_by_tag_name("iframe"))
buttons=driver.find_elements_by_css_selector("button")
for button in buttons:
if button.text.strip()=="Create Community":
button.click()
#A new pop up window causes me to switch windows
for handle in driver.window_handles:
BRT=driver.switch_to_window(handle)
print(BRT)
#then I switch frames
driver.switch_to_frame(driver.find_element_by_class_name("FormDialogIFrame"))
driver.find_element_by_id("CommunityFormCommunityNameTextBox").send_keys("1st MEB STAFFEX")
save=driver.find_element_by_id("CommunityFormSaveButton").click()
#that popup closes now I have to switch to another frame
我尝试切换到代码的框架:
<iframe role="presentation"
class="x-component x-window-item x-component-default"
src="/brvt?lang=en_US&owf=true&themeName=a_default&
themeContrast=standard&themeFontSize=12"
name="{"id":"778a1259-bc80-602e-c0ad-16a3f9220516","containerVersion":"7-GA","webContextPath":"/owf","preferenceLocation":"https://www.url,com;,"relayUrl":"https://url.com/55js/even/rpc_relay.uncompressed.html","lang":"en_US","currentTheme":{"themeName":"a_default","themeContrast":"standard","themeFontSize":12},"55f":true,"layout":"desktop","url":"/brvt","guid":"260f0022-66de-a78b-3ce8-8de63a3bdbec","version":1,"locked":false}"
id="{"id":"778a1259-bc80-602e-c0ad-16a3f9220516"}"
frameborder="0"></iframe>
我尝试过这样做:
driver.switch_to_frame(driver.find_element_by_tag_name("iframe"))
这有效,但是当我尝试单击框架内的下拉菜单时:
driver.find_element_by_css_selector("#OYk3vd6NKj1jbrnew > td.sub_item_text").click()
我也尝试过:
driver.switch_to_frame(driver.find_element_by_id("{"id":"778a1259-bc80-602e-c0ad-16a3f9220516"}")
我收到一条错误,指出无法找到该元素。 有建议吗?
最佳答案
如果您只想精确定位指定的帧,请尝试:
required_frame = driver.find_element_by_xpath('//iframe[@role="presentation"]')
driver.switch_to_frame(required_frame)
或者更具体:
required_frame = driver.find_element_by_xpath('//iframe[@role="presentation"][@class="x-component x-window-item x-component-default"]')
driver.switch_to_frame(required_frame)
这个建议有帮助吗?
关于html - 切换到以前的 IFRAME Selenium Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33998910/