Selenium: - 无法定位元素

时间:2018-04-28 20:44:19

标签: selenium selenium-webdriver xpath css-selectors webdriver

我在这里很困惑。我无法点击按钮。也许它在不同的框架上。但是当我试图使用switch语句时,我得到一个错误,没有找到这样的帧。如果我通过点击按钮直接运行我的代码,我会发现错误: - 无法找到元素:// * [@ id =' dutch_popupBtn']

HTML是: -

//driver.switchTo().frame("active_auctions");  
driver.findElement(By.xpath("//*[@id='dutch_popupBtn']")).click();
System.out.println("test"); 

我的代码是: -

Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to locate element: //*[@id='dutch_popupBtn']

错误是: -

UIApplication.shared.registerForRemoteNotifications()

任何人都可以帮我点击投标按钮。 这将非常有帮助。

1 个答案:

答案 0 :(得分:2)

根据您分享的HTML和代码尝试,我看不到 name / id 提供的任何框架 active_auctions ,但是找到id dutch_popupBtn 的元素,您需要按如下方式引导 WebDriverWait

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//td[@class='active_purchase actionIcons']//a[@id='dutch_popupBtn' and @title='Place Bid']/i"))).click();

更新

根据您的评论更新,因为您发现重点放在元素上而不是点击,您可以使用executeScript()方法,如下所示:

WebElement myElement = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//td[@class='active_purchase actionIcons']//a[@id='dutch_popupBtn' and @title='Place Bid']/i")));
driver.execute_script("arguments[0].click();", myElement)