我有这个页面,其中有一个文本框,每个文本框都有一个保存按钮。我需要单击“保存”按钮,以便将值保存在文本框中。它正在手动工作并使用硒。但是当运行Selenium WebDriver时,它不会保存文本框值。但是没有抛出错误异常。输入,点击正在运行。 savetextvalue()不会被触发。 类似的问题Selenium click event does not trigger angularjs event
<pp-save-control fn-save-text="saveText();" btn-class="btn btn-default btn-mtl" button-id="btnkbaemailauthsub" place-holder-text="" input-class="tb-mtl" input-id="txtkbaemailauthsub" config-name="40" title-text="KBA email authentication subject" outer-container-class="div-mtl-header" class="ng-isolate-scope"><div class="div-mtl-header">
<span class="label-mtl ng-binding">KBA email authentication subject</span><img ng-hide="(isHelpHidden != null && isHelpHidden != 'true') ? false : true" class="help-mtl ng-hide" src="/Images/help.png">
<div class="div-mtl-tb-holder">
<input type="text" placeholder="" class="tb-mtl" name="txtkbaemailauthsub" id="txtkbaemailauthsub">
<button ng-click="saveTextValue();" ng-hide="false" class="btn btn-default btn-mtl btn-mtl-alignment" name="btnkbaemailauthsub" id="btnkbaemailauthsub" type="button">save</button>
</div>
</div>
</pp-save-control>
有多个文本框和关联的保存按钮。根据'config-value'(您可以在顶部看到),值将被保存。
答案 0 :(得分:3)
driver = webdriver.Chrome('/path to /webdriver 22');
driver.find_element_by_css_selector('button[ng-click="func()"]');
答案 1 :(得分:2)
在Selenium IDE中尝试:
<td>sendKeysAndWait</td>
<td>id=mybutton</td>
<td>${KEY_ENTER}</td>
与Webdriver相同:
WebElement element_p = (new WebDriverWait(_driver, 3))
.until(ExpectedConditions.visibilityOfElementLocated(By
.id("myButton")));
element_p.sendKeys(Keys.RETURN);
答案 2 :(得分:0)
在Selenium上使用Selenide时会出现同样的问题。我找到了使用Selenide的解决方法,如果这是一个选项:
找到可点击元素后,使用Selenide的pressEnter()而不是click()。
element.should(exist).pressEnter();
答案 3 :(得分:-1)
我以前自己面对过这个问题。这是我解决的方法。 右键单击按钮->转到检查元素->复制CSS选择器并将其存储在变量中
点击按钮的代码:
your_element = your_driver.find_element_by_css_selector(css_selector_variable)
your_driver.execute_script('arguments[0].click()',your_element)