通过“相对=向上”访问框架与Selenium&红宝石

时间:2017-07-04 04:55:31

标签: ruby selenium iframe selenium-webdriver selenium-chromedriver

最近我在Selenium IDE中使用命令“selectFrame> relative = up”在嵌套帧之间切换。由于我决定重写Selenium和Ruby中的所有代码,我找不到这个命令模拟所提到的语言。

我无法按名称选择框架,因为在重新加载后它会有所不同。其他框架属性是:

iframe id="ext-comp-1465" name="ext-comp-1465" frameborder="0" src="/5005700001V96Ub/e?retURL=%2F5005700001V96Ub&amp;isdtp=vw&amp;cancelURL=%2F5005700001V96Ub&amp;nonce=a37ade0829c6d08539a765cd370dff0766cd596851439e853d68a60e9d7c28d0&amp;sfdcIFrameOrigin=https%3A%2F%2F*************.com" class=" x-border-panel" style="left: 0px; top: 0px; width: 329px; height: 641px;"></iframe

请告诉我如何使用“relative = up”选项或其他框架属性进入此框架。提前谢谢。

2 个答案:

答案 0 :(得分:0)

尝试以下方法,

driver.switch_to.frame "ext-comp-1465"

driver.switch_to.frame driver.find_element(id: 'ext-comp-1465')

driver.switch_to.frame driver.find_element(name: 'ext-comp-1465')

driver.switch_to.frame driver.find_element(xpath: '//iframe[starts-with(@id,"ext-comp-"] ')

答案 1 :(得分:0)

最终解决方案:

frames = @driver.find_elements(:xpath, '//iframe[starts-with(@id,ext-comp-)]')
@driver.switch_to.frame frames[1]