- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下页面元素的 HTML。它是组合框 View 类型,列表是动态的
<div id="sender-combobox" class="sc-view scui-combobox-view sc-regular-size" style="left: 0px; right: 0px; top: 26px; height: 24px">
<div id="sc14188" class="sc-view sc-button-view icon square sc-regular-size" style="right: 0px; width: 28px; top: 0px; height: 24px" role="button" alt="" title="">
<span class="sc-button-inner" style="min-width:80px">
<label class="sc-button-label ellipsis">
<img class="caret" alt="" src="data:image/gif;base64,R0lGODlhAQABAJAAAP///wAAACH5BAUQAAAALAAAAAABAAEAAAICBAEAOw==">
</label>
</span>
</div>
<label id="sc14190" class="sc-view sc-text-field-view oldWebKitFieldPadding sc-hint sc-regular-size" style="left: 0px; right: 28px; top: 0px; height: 22px">
<span class="border"></span>
<span class="padding">
<input class="field" type="text" maxlength="5096" spellcheck="false" placeholder="Set Default Username" value="Set Default Username" name="sc14190">
</span>
</label>
</div>
现在我试图通过将元素声明为 select_list 并使用来自(http://www.rubydoc.info/github/cheezy/page-object/PageObject/Platforms/SeleniumWebDriver/SelectList#select-instance_method)的 Select 方法来从组合框中选择一个项目。
select_list(:default_sender, {xpath: "//div[@id='sender-combobox']/div/span/label/img"})
default_sender_element.Select('User1')
我收到一条错误消息,指出没有 Select 方法。我无法弄清楚原因:是不是因为元素类型不是组合框,因此 Select 方法不起作用?
fyi..我在我的文件中包含了“selenium-webdriver”。
作为另一种方法,我将组合框声明为两个不同的项目(搜索框 + 按钮)并尝试使用 send_keys(value) 输入文本,搜索将给出结果。但是我无法点击结果。
我卡在这一步了。感谢任何帮助或指导。
最佳答案
问题是您(或 selenium)正试图像 HTML 控件一样对待 SproutCore 控件。 SC 存在于 JavaScript 中,在你和 HTML 之间有一个厚厚的 View 层。在SCUI组合框的例子中,根据here ,您将在 JavaScript View 对象 上调用 myView.showList(),而不是在 HTML 元素上。
由于 SproutCore 存在于 JavaScript 中,因此您很少会通过查看 HTML 来找到 View 对象,因为这被认为是非常骇人听闻的。但是,如果您有充分的理由(或没有其他选择),您可以通过其 ID 访问 View ,该 ID 与元素上的 ID 相同。您在上面包含的 HTML 表明 ComboBox 的 ID 是“sender-combobox”(这意味着它已使用 layerId 进行了自定义,这是一个坏主意);您可以在 SC.View.views['sender-combobox'] 找到该 View 。同样,这被认为是一个坏主意。
请注意,如果您自己运行代码,例如从控制台或任何其他非 SC 响应用户事件(如单击)的来源,那么您需要通过使用函数调用 SC.run 来触发运行循环。否则,SproutCore 的绑定(bind)和观察者可能无法跟上,或者在下一个用户事件之前可能会出现不可预测的行为。
总而言之,要弹出打开此 View 的下拉列表,您可以使用:
SC.run(function() { SC.View.views['sender-combobox'].showList(); });
(但不要忘记以其他方式访问 SC.View.views['sender-combobox'] 会更好)。
关于combobox - 无法使用 Selenium Webdriver :Ruby 识别 Combobox (Sproutcore) 并对其执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24517107/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我有一个包含一些数据的网格(用户列表)。对于每一行,我有许多操作,例如更新、删除、激活、暂停、查看您命名的订单。 而不是放置如此多的按钮,这些按钮将填充超过 400-500像素 我想放置一个组合框,其
在我的一个对话框中,我有以下控制: 我在其他地方填充 ComboBox,如下所示: 但是,如果我没有创建 ComboBox 位,MSI 仍将构
我在项目中为 MVC 使用了 kendo complete。 我有某些形式的国家/地区列表,我显示国家/地区名称,但存储国家/地区代码。 我有以下问题:当用户输入不在列表中的内容时,该值将发送到服务器
我有一个组合框,其中的值是从托管 bean 填充的,如下所示: keywordlist.setConnDB("jdbc:sqlserver://xx.xx.x.xx:1433;DatabaseName
我有一个 ComboBox,它绑定(bind)到 ViewModel 中的复杂类型集合,这些类型的长度可以是任意数量,具体取决于用户的偏好。 我已经创建了一个基于 ComboBox 默认值的样式,并且
我做了一个转换器: public class BooleanToDateConverter implements Converter { private static final long s
编辑:由于 Rob 的回答,我已经更新了下面的代码,现在它可以工作了。 我找到了几页显示如何执行此操作的页面( http://www.cmcrossroads.com/content/view/131
我是 PyQT 的新手。 我有兴趣向 tableView 的每一行添加一个组合框。在 PyQT 4 中可能吗? 我知道,在 QT5 中是可能的,但不确定 PyQT。 预先感谢您的帮助。 最佳答案 如果
我对 JavaFX(8)、HBox、ComboBox 和 HGrow 有问题。 HGrow 不能与 ComboBox 结合使用。 (信息:使用 TextField (而不是 ComboBox),它按预
我有一个 XAML UserControl连接到 ImportPresenter View 模型。有四个ComboBox我的 XAML 中的项目: CashActivityTypeBAI CashAc
我将两个组合框绑定(bind)到同一个 listviewcollection。问题是在一个组合框中选择一个值会导致另一个组合框选定项更改为第一个组合框的确切值。它们是耦合的,我希望它们彼此独立。 My
我正在尝试在 extjs 3.4 中的组合框中的选项之间添加一行。我可以添加该行,但不能用我的远程位置的数据填充它。 (如果我删除修改的 tpl 选项,它就会填充)。 这是我的代码。我只需要在“组”字
我被 WIX 安装程序中的组合框和自定义操作困住了。 我有一个包含几个值的组合框(下拉菜单)。当用户从此下拉列表中选择一个值时,我想在屏幕上显示一些文本(对于下拉列表中的每个项目都是唯一的)。 在 .
我有 ComboBox cbx 和一个包含选项卡的 TabPane(选项卡:t)和一个按钮 b1。因此,单击此按钮 b1 时,它会在 TabPane 中添加一个新选项卡 t,并在包含以下内容的 Com
我有两个组合框:水果和饮料。 fruits 具有字符串:“apple”、“orange”、“banana” drinks 具有字符串:“water”、“coffee”、“juice” 如何制作一个新组
我必须监听什么事件,以便在用户从(可编辑的)WPF ComboBox control 中选择一个选项时得到通知? 我是否必须先访问 Items 属性才能收听 Items.CurrentChanged?
我有以下简单的 QML 组合框: import QtQuick 2.0 import QtQuick.Controls 1.4 import si.mikroelektronika 1.0 Item
当我创建组合框时,列表中没有项目。现在,当我单击下拉按钮时,会调用一个函数(通过 postcommand 选项),但是一旦在我的函数中,我不知道如何在组合框的列表框中设置值。 代码如下: #u
我有两个组合框 我使用 LINQ-to-Entities 来填充 cmbGroup 组合框 Dim db as myDataEntity cmbGroup.ItemsSource = db.Mak
我是一名优秀的程序员,十分优秀!