我正在写一个java程序,从网站自动下载PDF。在浏览器中,帐户是从菜单中选择的,但是,该菜单的格式为# storenumber - accountnumber (例如# 1234 - 987654321)。我没有门店号码的权限。
java可以忽略-之前的所有字符吗?如果可以,你可以写出这个表达式吗?
我将它与selenium和firefox webdriver一起使用,这使得简单地分离和保存字符串变得更加困难。这意味着我的内存中没有字符串,它来自浏览器。
这就是如果我有店号的话我的代码应该是什么样子的(但我没有)。
new Select(driver.findElement(By.id("ctl00_main_ddlAssocAccountNumbers"))).selectByVisibleText(storeNum + " - " + accountNum);
如有任何其他解决方案或建议,欢迎光临。
谢谢,托比尔
发布于 2013-06-06 00:30:33
如果格式# storenumber - accountnumber已修复,最好使用split()
accountNum = accountNum.split(" - ")[1];编辑:
根据您更新的帖子和评论,我认为您希望在使用Selenium的selectByVisibleText()方法时只对用户帐号进行部分匹配,该方法不接受任何通配符或正则表达式。
但下面是如何通过使用contains()进行子字符串匹配来实现此行为的
Select select = new Select(driver.findElement(
By.id("ctl00_main_ddlAssocAccountNumbers")));
List<WebElement> listOfOptions = select.getOptions();
for (WebElement option : listOfOptions) {
String storeAndAcctNum = option.getText();
if (storeAndAcctNum.contains(accountNum)) { // if sub-string matches
select.selectByVisibleText(storeAndAcctNum); // fire select as usual
break; // out of the loop
}
}https://stackoverflow.com/questions/16945050
复制相似问题