Ruby 使用watir webdriver查找动态元素
我正在自动化的应用程序有一个。。。按钮,打开一个悬停弹出窗口,其中有一些选项/选项,我需要完成填写主表单 首先,按下按钮后。。。按钮,弹出窗口神奇地出现,例如,我不知道是什么代码打开它。与to_按钮关联的唯一JavaScript是: 打开新窗口后,将出现一个下拉列表,从列表框中选择一个类别,在选择类别后,新窗口将使用该类别中的用户列表进行更新 如何捕获屏幕,找出字段的名称/ID,然后单击“完成”按钮,返回到主屏幕,在主屏幕上。。。然后是所选的值 以下是代码的相关部分:Ruby 使用watir webdriver查找动态元素,ruby,selenium,watir-webdriver,Ruby,Selenium,Watir Webdriver,我正在自动化的应用程序有一个。。。按钮,打开一个悬停弹出窗口,其中有一些选项/选项,我需要完成填写主表单 首先,按下按钮后。。。按钮,弹出窗口神奇地出现,例如,我不知道是什么代码打开它。与to_按钮关联的唯一JavaScript是: 打开新窗口后,将出现一个下拉列表,从列表框中选择一个类别,在选择类别后,新窗口将使用该类别中的用户列表进行更新 如何捕获屏幕,找出字段的名称/ID,然后单击“完成”按钮,返回到主屏幕,在主屏幕上。。。然后是所选的值 以下是代码的相关部分: <!-- Recip
<!-- Recipient List---------------------------------------------------------------------------------------------------- -->
<div class="sam-block clearfix">
<!-- open selection screen -->
<div class="label">
<a style="clear: both;margin-top:5px;" href="#" class="secondaryButtonSmall" id="to_button">To...</a>
</div>
<!-- display selected recipients -->
<div class="field">
<div id="NotificationRecipientContainer">
</div>
<!-- Map ---------------------------------------------------------------------------------------------------------------- -->
<div id="selectMapLink">
</div>
</div>
<!-- hidden window for selection -->
<div>
<div id="RecipientSelectionWindow" style="overflow:auto;display:none"><div style="display:inline-block;margin-left:40%;margin-top:20%;"><div class="loadingInline">Loading...</div></div></div><script>
jQuery(function(){jQuery("#RecipientSelectionWindow").kendoWindow({"modal":true,"iframe":false,"draggable":true,"pinned":false,"title":"Send Message To:","resizable":false,"content":null,"width":850,"actions":["Close"]});});
</script>
下面是我不使用的Seleniuma工具得出的结论:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="https://connect.blackboardconnect.com/" />
<title>New Test</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">New Test</td></tr>
</thead><tbody>
<tr>
<td>open</td>
<td>/Notification/LoadNewMessage?messageStatus=Draft&messageType=Emergency#</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=to_button</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//div[@id='selectionSourceContent']/div/span/span/span</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>css=li.k-item.k-state-hover</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=CAP_523</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Done</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>css=#CapContent_Tab > a.deliveryModeTabLink.messageChannelChoicesTabLink</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>
作为补充说明,我在IRB中运行了命令,在访问安全链接时得到了以下信息,操作失败,出现以下错误:
irb(main):055:0> safeButton = browser.link :id => 'safeModeLink'
=> #<Watir::Anchor:0x6a5383a0 located=false selector={:id=>"safeModeLink", :tag_
name=>"a"}>
irb(main):056:0> safeButton.click
Selenium::WebDriver::Error::UnknownError: [JavaScript Error: "a is null" {file:
"file:///C:/Users/TSTURG~1/AppData/Local/Temp/webdriver-profile20141003-6084-rb5
gxf/extensions/fxdriver@googlecode.com/components/command-processor.js" line: 88
77}]'[JavaScript Error: "a is null" {file: "file:///C:/Users/TSTURG~1/AppData/Lo
cal/Temp/webdriver-profile20141003-6084-rb5gxf/extensions/fxdriver@googlecode.co
m/components/command-processor.js" line: 8877}]' when calling method: [nsIComman
dProcessor::execute]
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/s
elenium/webdriver/remote/response.rb:52:in `assert_ok'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/s
elenium/webdriver/remote/response.rb:15:in `initialize'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/s
elenium/webdriver/remote/http/common.rb:59:in `new'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/s
elenium/webdriver/remote/http/common.rb:59:in `create_response'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/s
elenium/webdriver/remote/http/default.rb:66:in `request'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/s
elenium/webdriver/remote/http/common.rb:40:in `call'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/s
elenium/webdriver/remote/bridge.rb:638:in `raw_execute'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/s
elenium/webdriver/remote/bridge.rb:616:in `execute'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/s
elenium/webdriver/remote/bridge.rb:198:in `switchToDefaultContent'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/s
elenium/webdriver/common/target_locator.rb:76:in `default_content'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.11/lib/wati
r-webdriver/browser.rb:367:in `assert_exists'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.11/lib/wati
r-webdriver/elements/element.rb:532:in `locate'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.11/lib/wati
r-webdriver/elements/element.rb:510:in `assert_exists'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.11/lib/wati
r-webdriver/elements/element.rb:119:in `click'
from (irb):56
from C:/Ruby193/bin/irb:12:in `<main>'
不看页面就回答你的问题有点难。Selenium IDE正在与提供的HTML中未显示的元素进行交互。提供的HTML是否来自查看页面源或查看当前DOM(例如使用开发人员工具栏、检查browser.HTML等)?这是来自页面源。我可以在早上得到DOM,ESTI将截图和页面源代码列表放在一起,在浏览器中提供抱歉,无法访问后端代码。我怎样才能获得.pdf文件供您查看?您可以找到一个允许上传文件的地方,并共享指向它的链接。