【问题标题】:Selenium Webdriver, clicking a button not workingSelenium Webdriver,单击按钮不起作用
【发布时间】:2019-05-16 15:42:52
【问题描述】:

我在自动化过程中单击两个按钮时遇到两个问题

第一个:一个查看按钮,其中包含以下详细信息

<button class="veiw-btn" data-toggle="collapse" data-target=".toggle-content1" aria-expanded="false" aria-controls="toggle-content1" ng-click="gotoAnchor(flightResult.FlightId)">VIEW</button>

页面上有几个 VIEW 按钮,但它们与切换内容不同(它们有数字 1、2、3、4)我只需要选择第一个并单击它

第二:

单击视图后,我还想使用以下代码单击继续按钮

<div class="text-center">
    <button class="flight-book-btn" type="button" ng-click="select(false, flightResult);">
     <span>Continue</span>
     </button>
</div>

我的主要问题是第一个密码,但如果我能得到这两个方面的帮助,我会很高兴。我无法点击第一个 VIEW 按钮

我在网上尝试了一些示例,但它们对我不起作用

我希望能够点击查看和继续按钮

代码:

driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);     
log.debug("Fastest Sort Available "); 
log.debug("Now about to click VIEW Airline Details "); 
// driver.findElement(By.xpath("//button[text()='VIEW' and @data-target='.toggle-content1' and @aria-controls='toggle-content1']")).click();; 
driver.findElement(By.cssSelector("button[class=\"veiw-btn\"][data-target='.toggle-content1'']")).click();

【问题讨论】:

  • 如果可以,请提供代码和/或错误。
  • driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); log.debug("最快的排序可用"); log.debug("现在即将点击查看航空公司详情"); // driver.findElement(By.xpath("//button[text()='VIEW' and @data-target='.toggle-content1' and @aria-controls='toggle-content1']"))。点击();; driver.findElement(By.cssSelector("button[class=\"veiw-btn\"][data-target='.toggle-content1'']")).click();

标签: java selenium selenium-webdriver


【解决方案1】:

尝试使用 css 选择器或 Xpath

CSS:

driver.FindElement(By.CssSelector("button[class="veiw-btn"][data-target='.toggle-content1']").Click();

xpath:

driver.FindElement(By.XPath("//button[@class='veiw-btn'][@data-target='.toggle-content1']").Click();

【讨论】:

  • 我收到此代码错误。相同的错误,它不可点击 org.openqa.selenium.ElementClickInterceptedException:元素点击被拦截:元素 不可点击
  • @Adeyinka Alayo 为我们提供了整个 HTML 页面,以便我们找出拦截点击的原因,或者至少是按钮所在的整个部分
【解决方案2】:

你可以使用这个xpath来点击VIEW按钮:

//button[text()='VIEW' and @data-target='.toggle-content1' and @aria-controls='toggle-content1']

对于单击继续按钮,您可以尝试使用此 xpath:

//span[text()='Continue']/parent::button[@class='flight-book-btn']

【讨论】:

  • 收到此代码错误。相同的错误,它不可点击 org.openqa.selenium.ElementClickInterceptedException:元素点击被拦截:元素 不可点击 –
  • @AdeyinkaAlayo:你能分享你的代码吗,你尝试了什么?
  • 我已经尝试了所有选项,但错误是 View Button 不可点击,而它是 try { driver.manage().timeouts().implicitlyWait(60, TimeUnit.秒); log.debug("最快的排序可用"); log.debug("现在即将点击查看航空公司详情"); // driver.findElement(By.xpath("//button[text()='VIEW' and @data-target='.toggle-content1' and @aria-controls='toggle-content1']"))。点击();; driver.findElement(By.cssSelector("button[class=\"veiw-btn\"][data-target='.toggle-content1'']")).click();
【解决方案3】:

我已经用这个解决了这个问题

WebElement element= driver.findElement(By.xpath("//button[text()='VIEW' and @data-target='.toggle-content1' and @aria-controls='toggle-content1'] "));
JavascriptExecutor 执行器 = (JavascriptExecutor) 驱动程序; executor.executeScript("arguments[0].click();", element);

【讨论】:

    猜你喜欢
    • 2017-05-23
    • 1970-01-01
    • 2017-08-18
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 2020-09-04
    • 2022-01-19
    相关资源
    最近更新 更多