Selenium WebDriver w / Java。无法在弹出窗口中选择项目

时间:2015-07-24 19:28:27

标签: javascript java selenium popup

SwitchWindow,Frame,Alert,我能想到的一切以及经过大量搜索。到目前为止,没有任何工作。

当我点击“编辑”按钮时,会弹出一个新窗口,其中包含文本框,特殊字符选择,保存和退出按钮。我想要做的只是在框中输入文本但由于某种原因webdriver无法找到该元素。

这是一些HTML。该         textarea name =“specHeading” 是我正在尝试编辑的内容。

<script src="/js/componentlist.js" type="text/javascript">
<script src="/js/mrinformation.js" type="text/javascript">
<script src="/js/jquery.resources.js" type="text/javascript">
<script src="/js/validateresources.js" type="text/javascript">

<div class="ckmodal-next" style="top: 9px; left: 1281.5px;"></div>
<div class="ckmodal-prev" style="top: 9px; left: 261.5px;"></div>
<div class="ckmodal-close" style="top: -225px; left: 1239px;"></div>
<div class="ckmodal-background" style="width: 100%; height: 100%; position: fixed; top: 0px; left: 0px; background-color: rgb(51, 51, 51); opacity: 0.8; z-index: 10000000;"></div>
<div class="modal-container" style="opacity: 1; position: fixed; top: -212.5px; left: 321.5px; display: block; z-index: 10000001;">
    <form class="form">
       <div class="row">
          <div class="col24">
             <div class="box box-gray">
                <h2>
                   <div class="content">
                      <fieldset class="full">
                         <div class="form-field full">
                            <label>Heading:</label>
                            <textarea name="specHeading"></textarea>
                         </div>
                         <div class="form-field full">
                            <div class="form-field bottom full">
                      </fieldset>
                      <div class="clear"></div>
                   </div>
                </div>
             </div>
          </div>
       </form>
    </div>
 </body>
</html>

看起来没有可以切换到的窗口,它不是iframe,也不是警报。这就是我认为模态中的JavaScript。

<script src="/js/productheaders.js" type="text/javascript">
    ;(function($){
        var $currentEditHeader = null;

        function setupForm(e) {
            var $this = $(this),
            value = $this.siblings('span').html();

            $currentEditHeader = $this.parents('.product-header');
            $('#edit-header').ckmodal({
                onShow: function(){
                    $('textarea[name=specHeading]').val(value.replace(/<br\s*[\/]?>/g, '\n')).focus();
            }
        });
    }

function saveHeader(e) {
    var $this = $(this),
    value = $('textarea[name=specHeading]').last().val();

    if ( value == '' ) {
        var defaultValue = $currentEditHeader.attr('data-default-value');
        $currentEditHeader.children('span').text(defaultValue);
        $currentEditHeader.addClass('default');
    } else {
        $currentEditHeader.children('span').html(value.replace(/<[^>]*>?/g, '').replace(/\n/g, '<br>'));
        $currentEditHeader.removeClass('default');
    }

1 个答案:

答案 0 :(得分:0)

&#34; popup&#34;可能不是一个单独的窗口/框架/警报,而是主页的一部分,它只是可见。 你可以这样对待它。很难说这个摘录。

如果涉及某种动画,您可能必须等待它可见。

此外,在这些文本字段中插入文本存在一些问题。在这种情况下,以下内容对我们有用:

  1. 致电textFieldElement.clear()
  2. 然后致电textFieldElement.sendKeys()