Java WebDriver:未检测到在另一个窗体中的窗体中定义的链接元素
我正在尝试点击链接将文件附加到页面。页面的HTML结构是Java WebDriver:未检测到在另一个窗体中的窗体中定义的链接元素,java,selenium,webdriver,selenium-webdriver,Java,Selenium,Webdriver,Selenium Webdriver,我正在尝试点击链接将文件附加到页面。页面的HTML结构是 <div class="multi_attach_files"> <span id="WorkkardFileUploader" class="file_uploader"> <div id="px-widget-1" class="px-widget ui-widget-px"> <div class="ui-helper-clearfix">
<div class="multi_attach_files">
<span id="WorkkardFileUploader" class="file_uploader">
<div id="px-widget-1" class="px-widget ui-widget-px">
<div class="ui-helper-clearfix">
<div id="px-form-1-input" class="px-form-input">
<form id="pxupload1" name="multipleFileUpload" style="" target="pxupload1_frame" action="/multiupload" method="POST" enctype="multipart/form-data" encoding="multipart/form-data">
<div class="px-input-button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button">
<span class="ui-button-text">
<span class="label">Attach Files</span>
<span id="dragMsg" class="dragcontainer">Drag Here</span>
<input id="wkFileUpload" class="fileupload" type="file" multiple="" tabindex="-1" name="noteFilename" title="Attach Files" style="background-color: transparent;">
</span>
</div>
附加文件
拖到这里
我已经尝试了.sendkeys()
,但是元素(id=“wkFileUpload”
)对Selenium不可见
有人可以提出建议吗?不幸的是,到目前为止(2013年9月,Selenium 2.35.0),您还不能这样做,因为Selenium不支持
元素
对于由项目开发人员自己制作的,它还没有实现。您可以在那里启动它,将其在优先级列表中向上移动
这个bug提到已经做了一些工作,但是我认为它不会很快完成。最好使用(仅限Windows)或类(也仅适用于与您类似的设置),并在对话框中“盲目”键入路径:
driver.findElement(By.id("wkFileUpload")).click();
Robot r = new Robot();
r.keyPress(KeyEvent.VK_C); // C
r.keyRelease(KeyEvent.VK_C);
r.keyPress(KeyEvent.VK_COLON); // : (colon)
r.keyRelease(KeyEvent.VK_COLON);
r.keyPress(KeyEvent.VK_SLASH); // / (slash)
r.keyRelease(KeyEvent.VK_SLASH);
// etc. for the whole file path
r.keyPress(KeyEvent.VK_ENTER); // confirm by pressing Enter in the end
r.keyRelease(KeyEvent.VK_ENTER);
这很糟糕,但应该行得通。请注意,您可能需要这些:和(另外还有一个新的和闪亮的,可以做类似的工作,但只能从JDK7获得)。请发布异常和代码片段感谢您的回复。我一定会尝试一下,然后回来。顺便说一句,我对这个问题投了赞成票,希望它能及时得到修复,以便我在当前项目中使用它。