Selenium Webdriver下拉选项

维斯瓦纳特·索塔德里(Viswanath Thothadri)

我已经编码为使用以下代码从下拉菜单中选择一个选项。

new Select (driver.findElement(By.xpath("//select[@name='fromAccount']"))).selectByIndex(10);

new Select (driver.findElement(By.xpath("//select[@name='toAccount']"))).selectByIndex(18);

但这是一种硬编码。如果更改了登录参数,则每次必须更新索引时,因为每次登录的帐户都不会在同一索引中。我所需要的只是拥有一个自动选择drodown选项的函数或循环语句。

在两种情况下都必须选择一个个人帐户,并且“发件人”和“收件人”帐户都应该不同。

<select class="select" id="fromAccount" name="fromAccount">
<option>---------------- Select account ---------------</option>
<option value="236881510">6227/084-737 23-688-1510 ($5,889.66)</option>
<option value="236937684">Line Of Credit #7684/083-047 23-693-7684 ($49,850.00)</option>
<option value="236188564">Line Of Credit #8564/083-047 23-618-8564 ($50,000.00)</option>
<option value="5386390000107472">NAB Traveller Card #7472/5386-3900-0010-7472</option>
<option value="236940963">Personal Account #0963/083-047 23-694-0963 ($836.00)</option>
<option value="236871603">Personal Account #1603/084-737 23-687-1603 ($70.12)</option>
<option value="236841914">Personal Account #1914/084-737 23-684-1914 ($0.00)</option>
<option value="236832014">Personal Account #2014/084-737 23-683-2014 ($10.00)</option>
<option value="236152254">Personal Account #2254/083-047 23-615-2254 ($261.69)</option>
<option value="236802325">Personal Account #2325/084-737 23-680-2325 ($413.80)</option>
<option value="236772648">Personal Account #2648/084-737 23-677-2648 ($282.00)</option>
<option value="236693421">Personal Account #3421/084-737 23-669-3421 ($31.00)</option>
<option value="236673607">Personal Account #3607/084-737 23-667-3607 ($11.00)</option>
<option value="236884818">Personal Account #4818/084-737 23-688-4818 ($33.00)</option>
<option value="236855136">Personal Account #5136/084-737 23-685-5136 ($10.00)</option>
<option value="236845229">Personal Account #5229/084-737 23-684-5229 ($1.00)</option>
<option value="236815513">Personal Account #5513/084-737 23-681-5513 ($7.15)</option>
<option value="236805614">Personal Account #5614/084-737 23-680-5614 ($0.00)</option>
<option value="236766029">Personal Account #6029/084-737 23-676-6029 ($1.00)</option>
<option value="236756138">Personal Account #6138/084-737 23-675-6138 ($0.00)</option>
<option value="236746204">Personal Account #6204/084-737 23-674-6204 ($0.00)</option>
<option value="236736313">Personal Account #6313/084-737 23-673-6313 ($0.00)</option>
<option value="236696710">Personal Account #6710/084-737 23-669-6710 ($0.00)</option>
<option value="236657105">Personal Account #7105/084-737 23-665-7105 ($0.00)</option>
<option value="236868316">Personal Account #8316/084-737 23-686-8316 ($0.00)</option>
<option value="236858425">Personal Account #8425/084-737 23-685-8425 ($0.00)</option>
<option value="236828736">Personal Account #8736/084-737 23-682-8736 ($0.00)</option>
<option value="236818802">Personal Account #8802/084-737 23-681-8802 ($0.00)</option>
</select>
杰夫

我会仔细检查fromAccount,SELECT OPTION直到找到一个个人帐户并存储该帐号。现在浏览toAccount,SELECT OPTION直到找到一个个人帐号,该帐号的帐号与fromAccount的帐号不同,并存储该帐号。现在,您有两个唯一的个人帐户,分别用于fromAccount和toAccount。

// set up references to both SELECTs
Select fromAccount = new Select(driver.findElement(By.id("fromAccount")));
Select toAccount = new Select(driver.findElement(By.id("toAccount")));

// other misc variables
String fromAcctNo = "";
String toAcctNo = "";

// find a personal account in the fromAccount OPTIONS
List<WebElement> options = fromAccount.getOptions();
for (WebElement option : options)
{
    // search for a personal account
    if (option.getText().contains("Personal"))
    {
        // store the account number
        fromAcctNo = option.getAttribute("value");
        break;
    }
}

if (fromAcctNo.equals(""))
{
    // log an error that a personal account was not found in fromAccount
}
else
{
    // find a personal account in the toAccount OPTIONS
    options = toAccount.getOptions();
    for (WebElement option : options)
    {
        // search for a personal account
        if (option.getText().contains("Personal"))
        {
            // find an account number that isn't the same as the fromAccount
            if (!option.getAttribute("value").equals(fromAcctNo))
            {
                toAcctNo = option.getAttribute("value");
                break;
            }
        }
    }
}

if (fromAcctNo.equals(""))
{
    // log an error that a personal account was not found in toAccount
}
System.out.println("fromAccountNo: " + fromAcctNo);
System.out.println("toAccountNo: " + toAcctNo);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Selenium Webdriver中选择下拉选项?

在 Jmeter 的 Selenium WebDriver 的下拉菜单中选择选项

如何使用Selenium WebDriver中的下拉选项获取下拉选项值

如何比较下拉选项与Selenium WebDriver中的UI选项是否匹配?

如何使用带有 Python 的 Selenium Webdriver 抓取下拉菜单选项?

如何从属性文件Selenium WebDriver中获得下拉选项?

如何通过Java使用Selenium Webdriver从下拉列表中提取firstselected选项的文本

使用Selenium WebDriver在自定义下拉列表中选择一个选项

如何使用Ruby获取Selenium Webdriver中下拉菜单的所有选项的文本?

使用Java的Selenium Webdriver:如何从下拉选择选项菜单中选择随机的出生月份和随机的国家

Selenium WebDriver和下拉框

Selenium Webdriver多选下拉菜单ElementNotVisibleException

使用Selenium WebDriver检测下拉列表

Selenium Webdriver中的自动完成下拉选择

使用 Selenium Python 未选择下拉选项

在Java + Selenium WebDriver中提取选择的选项

我正在尝试使用 selenium webdriver python 选择隐藏的下拉菜单选项,但它抛出“消息:没有这样的元素:无法找到元素”

如何验证Selenium Webdriver 2中下拉值的顺序?

如何使用Java在Selenium WebDriver中选择下拉值

无法使用 selenium webdriver 访问下拉列表的元素

无法使用Selenium WebDriver选择Ajax下拉值

動態下拉菜單 Selenium webdriver Python

如何使用Selenium WebDriver自动执行级联下拉列表

Python Selenium无法选择下拉菜单(Chrome WebDriver)

如何使用Selenium Webdriver Python单击呼叫下拉列表?

无法使用WebDriver Python Selenium设置组合框的下拉值

如何等到使用 selenium webdriver 加载 div 下拉列表?

需要在Selenium Webdriver中使用xpath选择下拉值

访问下拉列表-Selenium WebDriver和Java