我需要在下拉窗口中选择一个元素。每次我在要测试的网站中打开下拉窗口时,网站都会为该下拉窗口随机生成一个ID。下拉窗口的先前实例是可见的(使用Firebug),但不能选择。有一个静态路径,但是仅当我用ChromeDriver测试它时才起作用,而当我使用FirefoxDriver时它不起作用。第一次尝试按类名查找动态生成的元素时(下拉窗口的每个实例都具有相同的类),但是每次使用ChromeDriver和FirefoxDriver时,每次都会出错。我认为它可能正在尝试定位该第一个实例,而不是可选择的实例。
这是动态代码的代码:
driver.findElement(By.xpath("//div[@class='really long name for drop down menu']/ul/li[2]")).click();
这是我的静态代码:
driver.findElement(By.xpath("//option[normalize-space(.)='Text']")).click();
这是动态HTML:
<html class="FakeName1" style="">
<body style="margin: 0px; background-color: rgb(219, 230, 244);">
<form id="Form1" action="MenuSelector.aspx?Ihopethisstuffisnotimportant" method="post">
<div id="Menu1384921" class="really long name for drop down menu" style="overflow-y: auto; width: 438px; height: 320px; position: absolute; visibility: hidden; left: 165px; top: 88px; display: none;">
<div id="Menu1092875" class="really long name for drop down menu" style="overflow-y: auto; width: 438px; height: 320px; position: absolute; visibility: visible; left: 165px; top: 88px;">
<ul>
<li unselectable="on"></li>
<li unselectable="on">Text</li>
</ul>
</div>
</body>
</html>
这是静态HTML:
<div id="ThingList" style="width:100%;">
<table id="Table1" style="margin: 0px; padding: 0px; width: 100%; border-spacing: 4px;">
<tbody>
<tr>
<td align="right" style="width: 20%; font-size: 9pt;">Select a Thing: </td>
<td>
<select id="bThings" class="bInput" style="width: 436px;" onchange="javascript:setTimeout('__doPostBack(\'bThings\',\'\')', 0)" name="bThings">
<option value=""></option>
<option value="2">Text</option>
</select>
</td>
</tr>
</tbody>
</table>
</div>
试试这个方法:
获取所有元素。
java.util.List<WebElement> elements = driver.findElements(By.xpath("//div[@class='really long name for drop down menu']/ul/li[2]"));
elements[elements.count - 1].click();
那应该点击那个特定类的最后一个元素。
使用python+Selenium Web驱动程序,我尝试为保险网站自动选择某些单选按钮。问题是单选按钮的ID是动态的。例如,当生成一个新的保险应用程序时,会生成一个新的页面,并且屏幕上的单选按钮已经动态创建了ID(参见下面的HTML示例) 因此,使用上面的示例,我想单击id为“subj_received_33965”的单选按钮。但是,因为元素是动态生成的,所以在下一次自动化运行时id会有所不同(
问题内容: 我有以下问题。我的表格()结构如下: 存储不同表的名称,并在这些表中存储ID。我想做的是检查上述表中的行是否存储了对其他表的有效引用。因此,我需要从外部表中选择一行,其名称基于存储在中的字符串。我的代码不起作用,因为它存在语法错误,但清楚地显示了我想要实现的目标: 问题答案: 如果知道所有可能的表名,则可以使用条件语法来实现它:
MyBatis代码不加载枚举类型(版本:3.4.4)。 在MySQL数据库中,我有一个带有“cartype”字段的表,它是INT(11)类型。在Java中,我创建了一个用于处理汽车类型的枚举: Car mapper xml如下所示(不包含所有数据): 最后,我的豆子看起来如下: bean也包含getters和setters。 当我尝试在java中获取汽车时,它抛出以下异常:
问题内容: 我有一些用PHP生成的元素,我想知道是否可以选择ID不完整的元素,例如: 该类已经习惯了它们的共同点,但是现在我需要单独选择它们,但我不知道整个ID名称。 我可以使用类似: 问题答案: 不使用ID选择器,因为它们需要完整的ID名称,但使用substring属性选择器: 但是,既然您的元素仍然具有属性,那么为什么不向每个元素组添加一个通用类并按该类进行选择呢?您应该能够像生成ID一样使用
我有一些动态创建新div(表单内部的输入)的JS。它工作得很好。我还有一些jquery,它检查下拉输入,如果单击特定的选择,它会显示一个单独的div。它工作得很好。 如果我试图使用jquery在一个动态创建的div中显示一个单独的div,那么它将不起作用。它的第一个实例确实有效,但动态创建的实例都无效。在四处搜索之后,看起来我需要一个代表团,但我似乎无法针对我的具体情况找到它。 JSFIDLE:h
问题内容: 我目前正在使用WTFORMS创建一个动态选择字段,但是它从未提交,并且通过以下错误使验证失败。 我的字段是这样创建的: 在视图中,我从数据库中获取选项,如下所示: 但是,如果我创建静态选项,它将起作用。 问题答案: 我的猜测是,是-当数据从它被视为一个客户端回来的字符串由WTForms除非调用传递给了的关键字参数wtforms.fields.SelectField的构造函数: 或者,如