我有一个价格的第一页上的项目,并点击“查看交易”按钮后,打开第二页的新标签,在第二页上我有与此有关的价格的所有信息。我的主要目的是比较这些价格,但我有一个问题。
这里的方法来自第二页,在这个方法上我有一个例外,没有这样的元素,似乎一个驱动程序没有转移到这个选项卡或页面,如果添加driver.switchto().window(tabs.get(1));然后出现空指针异常
`public int parsePriceOnProductPage(){
// driver.switchTo().window(tabs.get(1));
wait.until(ExpectedConditions.elementToBeClickable(bookNowBtn));
String offerPriceValue = offerPriceProductPage.toString();
String onlyNumbers = offerPriceValue.replaceAll("[^\\d]", "");
int offerPrice_val = Integer.parseInt(onlyNumbers);
return offerPrice_val;
}`
这是测试中的前一个方法,从第一页开始,我将驱动程序发送到第二页
`public ProductPage clickOnDeal(){
viewDealBtn.get(1).click();
return new ProductPage(driver,wait);
}`
这里我比较一下价格
public boolean comparePriceOnHomePageWithProductPage(){
if(homePage.parsePriceFromSelectedDealOnHomePage() == productPage.parsePriceOnProductPage()){
return true;
}else if (homePage.parsePriceFromSelectedDealOnHomePage() > productPage.parsePriceOnProductPage()){
System.out.println("The price on the Home Page more than on the Product Page on the $"+ (homePage.parsePriceFromSelectedDealOnHomePage() - productPage.parsePriceOnProductPage()) );
} else {
System.out.println("The price on the Home Page less than on the Product Page on the $"+ (productPage.parsePriceOnProductPage() - homePage.parsePriceFromSelectedDealOnHomePage()) );
} return false;
}
3条答案
按热度按时间sr4lhrrt1#
我看不出你的代码有任何错误。我认为您使用的是页面对象模型。在您的场景中,尝试使用下面的方法,它应该可以工作。
驱动程序查找(由…);
aydmsdu92#
我已经在我的机器上试过了。请在下面找到我的代码。您是否使用了以下功能,但仍然无法使用?
lc8prwob3#
你要得到windows的句柄,它会打开选项卡的句柄,你可以使用下面的代码在选项卡之间切换