硒不能定位框架内部的场

时间:2015-07-24 18:41:48

标签: java html selenium xpath selenium-webdriver

我正在尝试在一个框架内找到一个对象,但是Selenium一直在返回,它试图找到该元素时超时。

以下是相关的代码信息:

帧ID为SeleniumCommands.myDriver.switchTo().frame("tasks-splash-content");。我正在使用此方法调用txt_dateofbirth

切换到它

我尝试查找并发送密钥的字段的ID为html/body/table/tbody/tr/td/table/tbody/tr[1]/td/div/table/tbody/tr/td/table/tbody/tr[4]/td[1]/input[1],xpath为wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(xpath)));。到目前为止,这两种选择方法对我都没有用。

这是我的方法的函数体,它通过xpath <div id="tasks-splash-window" class="ui-dialog-content ui-widget-content" style="width: auto; min-height: 0px; height: 638px; padding: 0px;" scrolltop="0" scrollleft="0"> <iframe id="tasks-splash-content" scrolling="no" frameborder="0" src="https://qa3.jobappdemo.com/apply/c_tca/l_en/applied/OpenForms.cfm?dr=i9&hp=1204988&fid=401"> <html> <head></head> <body> <iframe width="890" height="635" frameborder="0" src="https://qa3.jobappdemo.com/jobapp/get_appl_i9.cfm?hired_profile_id=1204988&hired_id=1204930&i9_id=902486&lang=en&new=1&rnd=327"> </body> </html> </iframe> </div> </div>

找到一个元素

因此,按顺序,我将切换到帧,等待字段可见,然后尝试向其发送一些值。有谁知道这可能导致这对我不起作用?

框架HTML:

.handle()
.split()
.transform()
.aggregate()

1 个答案:

答案 0 :(得分:1)

您需要搜索嵌套iframe

SeleniumCommands.myDriver.switchTo().frame("tasks-splash-content");
SeleniumCommands.myDriver.switchTo().frame(0);  // switch to the very first iframe

另请注意,您提供的XPath表达式不太可靠,请尝试依赖于ID,面向数据的类和属性,或有意义的容器或邻居。