Selenium WebDriver w/Java。在弹出窗口中选择项目时遇到问题 window
Selenium WebDriver w/Java. trouble selecting items in a pop up window
SwitchWindow、Frame、Alert,我能想到的,经过大量搜索后的一切。到目前为止没有任何效果。
当我单击 "edit" 按钮时,会弹出一个新的 window,其中包含一个文本框、特殊字符选择、保存和退出按钮。我只想在框中输入文本,但由于某种原因 webdriver 找不到该元素。
这是一些 HTML。这
文本区域名称="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>
看起来没有 windows 可以切换到,它不是 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');
}
"popup" 可能不是一个单独的 window/frame/alert,而是主页的一部分,只是显示出来。
你可以这样对待它。仅此摘录很难说。
如果涉及某种动画,您可能需要等待它可见。
此外,在这些文本字段中插入文本时会出现一些问题。在这种情况下,以下对我们有用:
- 致电
textFieldElement.clear()
- 然后调用
textFieldElement.sendKeys()
SwitchWindow、Frame、Alert,我能想到的,经过大量搜索后的一切。到目前为止没有任何效果。
当我单击 "edit" 按钮时,会弹出一个新的 window,其中包含一个文本框、特殊字符选择、保存和退出按钮。我只想在框中输入文本,但由于某种原因 webdriver 找不到该元素。
这是一些 HTML。这 文本区域名称="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>
看起来没有 windows 可以切换到,它不是 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');
}
"popup" 可能不是一个单独的 window/frame/alert,而是主页的一部分,只是显示出来。 你可以这样对待它。仅此摘录很难说。
如果涉及某种动画,您可能需要等待它可见。
此外,在这些文本字段中插入文本时会出现一些问题。在这种情况下,以下对我们有用:
- 致电
textFieldElement.clear()
- 然后调用
textFieldElement.sendKeys()