首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >页面上的Submit按钮不会使用Selenium ChromeDriver对.click()命令作出反应

页面上的Submit按钮不会使用Selenium ChromeDriver对.click()命令作出反应
EN

Stack Overflow用户
提问于 2016-09-22 08:00:10
回答 1查看 583关注 0票数 0

我们有两个不同的页面与提交按钮在每个。在一个页面上,提交按钮,注册单击并测试继续。在第二页中,您可以看到Selenium单击了按钮,但是按钮不会注册单击,测试将失败。工作按钮:

代码语言:javascript
代码运行次数:0
运行
复制
<div class="clearfix">
    <button id="form2:btnContinue" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-right fr" type="submit" onclick="PrimeFaces.ab({s:"form2:btnContinue",u:"form1 form2 form3 form2:btnContinue"});return false;" name="form2:btnContinue" role="button" aria-disabled="false">
    <span class="ui-button-icon-right ui-icon ui-c fa fa-caret-right"></span>
    <span class="ui-button-text ui-c">Continue</span>
    </button>
    </div>
    </div>

不工作按钮:

代码语言:javascript
代码运行次数:0
运行
复制
<div class="clearfix ">
<button id="form:j_idt210" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only fr" type="submit" onclick="PrimeFaces.ab({s:"form:j_idt210",u:"form form2 confirmationPanel"});return false;" name="form:j_idt210" role="button" aria-disabled="false">
<span class="ui-button-text ui-c">Submit Payment</span>
</button>
</div>
</div>

我宣布这两种情况相似。工作按钮:

代码语言:javascript
代码运行次数:0
运行
复制
@FindBy(xpath = "//*[@id='form2:btnContinue']")
    private WebElement processPaymentButton;

不工作按钮:

代码语言:javascript
代码运行次数:0
运行
复制
@FindBy(xpath = "//*[@id='form:j_idt210']")
    private WebElement submitFormButton; 

而且,PageObjects看起来完全一样。工作按钮:

代码语言:javascript
代码运行次数:0
运行
复制
public void setProcessPayment() {
        WebDriverWait wait = new WebDriverWait(driver, 9);
        wait.until(ExpectedConditions.visibilityOf(processPaymentButton));
        wait.until(ExpectedConditions.elementToBeClickable(processPaymentButton));

        processPaymentButton.click();

        wait.until(ExpectedConditions.visibilityOf(verificationInputField));

        sendKeysElement(verificationInputField, "1111");
        sendPaymentButton.click();
    }

不工作按钮:

代码语言:javascript
代码运行次数:0
运行
复制
public void setProcessPayment() {
        WebDriverWait wait = new WebDriverWait(driver, 9);
        wait.until(ExpectedConditions.visibilityOf(submitFormButton));
        wait.until(ExpectedConditions.elementToBeClickable(submitFormButton));

        submitFormButton.click();

        wait.until(ExpectedConditions.visibilityOf(authorizationTokenField));

        sendKeysElement(authorizationTokenField, "1111");
        authorizePaymentButton.click();
    }

我尝试用.sendKeys(Keys.ENTER)、脚本或操作更改.sendKeys()。基本上,我试过了我能找到的一切。我还更改了按钮的访问方式(CSS、ID、不同的Xpath方法)。但是,当您观察运行测试时,可以清楚地看到Selenium单击了按钮。按钮之前正在使用Selenium,但是它已经停止了。

我们正在使用Selenium 2.47.1和最新的ChromeDriver。按钮正在工作时,您单击它手动。谢谢你的帮助。

注意:问题与按钮本身更相关,而不是Selenium。如果你给我们提示如何修理按钮工作,我们将感激。

EN

回答 1

Stack Overflow用户

发布于 2016-09-23 11:49:17

解决整个问题的关键在于上面的“银行代码”组件。这个组件包含自动填充,它将显示可能的结果表(不同的银行代码和用于交易的渠道)。

整个问题在我发送给这个组件的代码中,我用通道发送银行代码,这导致了组件上的Java中断,防止了按钮的功能。我发现这是在用Selenium IDE进行测试时发现的。现在起作用了。

因此,从整个问题中吸取的教训是,页面上的每个组件都可以互相干扰,只要调整测试,按钮就可以工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39633444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档