当前位置: 首页 > 知识库问答 >
问题:

Java/Selenium-单击页面上的第一个按钮可以工作50%的时间

茅星华
2023-03-14

我正在使用Selenium来自动化web应用程序的一些UI单击。其中一页我有几个按钮导致一些细节。他们都有相同的名字,但我可以点击任何一个,所以我只是点击第一个。但是...有时起作用,有时不起作用。

WebElement DetailsButton = setPresentElementByXpath("//input[1][@type='button' and @value='Go to Details']");
DetailsButton.click();
private WebElement setPresentElementByXpath(String xpath) throws Exception {
    WebElement myDynamicElement = (new WebDriverWait(driver, 15))
          .until(ExpectedConditions.presenceOfElementLocated(By.xpath(xpath)));
    return myDynamicElement;
    }

编辑:我忘了提到它失败的地方。它在detailsbutton.click();中没有问题,但是在单击下一件事情时失败了,截图和日志显示单击按钮后应该显示的页面不在那里,所以我假设按钮没有被单击。

共有1个答案

澹台鸿熙
2023-03-14

页面加载速度变化和缓存可能是问题所在。如果元素未找到异常正在发生,请使用显式等待,通过ExpectedConditions.ElementTobeclickable(By)将其单击。

WebElement myDynamicElement = (new WebDriverWait(driver, 10)).until(ExpectedConditions.elementToBeClickable(By.id("myDynamicElement")));

如果发生异常“另一个元素将接收单击”,则可以直接使用JavaScriptExecutor单击该元素。注意:JS操作没有返回值(如果它工作与否),并且在单击之后发生页面加载时,它不会像Selenium.click()那样等待页面加载。

((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].click()", element);
 类似资料:
  • 问题内容: 我试图单击一些按钮,并以抽搐为例使用“跟随”按钮。 我使用Selenium IDE尝试获取按钮的xpath。我得到的xpath是: 如果我转到FireFox并为按钮复制唯一选择器,则会得到: 我在Java程序中都尝试过,但它们都无效。当我使用xpath时,出现以下错误: 编辑: 我要单击的带有按钮的网站示例(“关注”按钮):http : //www.twitch.tv/mradder8

  • 我有一个点击单选按钮的代码,一开始我用的是Chrome。使用下面的代码: 我发现了一个错误: 做研究的时候,我把代码改成: 当我单击单选按钮时,标签会在单击时获得一个附加属性。 其他编辑: 这组按钮如下所示:

  • 我正在测试一个网页,我需要选择几个复选框,然后点击提交。 HTML代码段

  • 问题内容: 我在Angular中有一个表单,其中有两个按钮标签。一键提交表单。另一个按钮仅用于使用进行导航。但是,当单击第二个按钮时,AngularJS导致页面刷新,从而触发404。我在函数中删除了一个断点,并触发了我的函数。如果我执行以下任何操作,它将停止: 如果删除,该按钮不会导致页面刷新。 如果我注释掉函数中的代码,则不会刷新页面。 如果我使用将按钮标签更改为锚标签(),则不会刷新。 后者似

  • 我正在尝试在Selenium中测试图像按钮点击。 图像是事件,当我点击sgt消息出现我 超文本标记语言代码:

  • 按钮单击在selenium webdriver中不工作。 尝试使用类名和xpath。 提交订单