Skip to content

Conversation

@tom-knight
Copy link

I'm testing a webapp (most of which I can't change) which uses frame which have name attributes but no id attribute.

If I try to select the frame by name using this code:

$this->driver->select_frame("content");

it will produce the following error:

Unsuccessful WebDriver command: 7 - NoSuchElement - An element could not be located on the page using the given search parameters.
Command: POST - http://localhost:4444/wd/hub/session/1329229716776/element - {"using":"id","value":"content"}
Message: Unable to locate element: {"method":"id","selector":"content"}
Command duration or timeout: 5.06 seconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.18.0', revision: '15704', time: '2012-01-27 15:48:16'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.31-gentoo-r10', java.version: '1.6.0_24'
Driver info: driver.version: EventFiringWebDriver
Failed asserting that  matches expected .

This is due to select_frame calling get_element first if an identifier is passed.

To get round this problem I modified select_frame so that it would work if the identifier was passed as "name=content".

@willonabike
Copy link

select_frame should allow any element selector (css, dom, name, etc) and does not.

I tried to inject an ID as workaround, but could not get the jquery-dependent javascript to run - worked fine in Selenium IDE.

 $this->driver->execute_js_sync("window.$(\"#pp_full_res iframe\").attr(\"id\",\"pp_popup\")");
   $this->driver->select_frame("pp_popup");

We will require engineering to add IDs to every iframe until this is resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants