Javascript 按键不工作
我正在努力使工作在提交按钮是禁用的,但它不应该点击。我有一个输入框,它有一个监听按键,如下所示:Javascript 按键不工作,javascript,python,selenium,Javascript,Python,Selenium,我正在努力使工作在提交按钮是禁用的,但它不应该点击。我有一个输入框,它有一个监听按键,如下所示: function isValidEmailAddress() { var pattern = "...." if(pattern.test($('#input').val())){ $('#submitButton').removeAttr('disabled'); }else{ $('#submitBu
function isValidEmailAddress() {
var pattern = "...."
if(pattern.test($('#input').val())){
$('#submitButton').removeAttr('disabled');
}else{
$('#submitButton').attr('disabled','disabled');
}
我有一个我必须点击的按钮:
<button type="submit" id="submitButton" disabled="disabled">Login</button>
供你参考,元素是正确的,我检查过了
当我在输入框中写入正确的字符串后尝试单击按钮时,按钮被禁用
我试图为自己执行一个javascript:
self.browser.execute_script("arguments[0].removeAttribute('disabled')", selector)
其中选择器是按钮。但它似乎不起作用,也没有抛出错误。在代码中,您似乎试图通过强制从DOM中删除“disabled”属性来启用submit按钮。一种解决方案是在元素选择中使用xpath更具体(即,仅在激活时选择它。您可以使用如下函数:
function getElementByXpath(path) {
return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
}
console.log( getElementByXpath("//button[@id='submitButton']")
);
然后,您可以尝试单击刚刚定位的图元:
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);
祝你好运
注:如果上述操作不起作用,则是由于您的“发送”键后没有足够早地启用按钮。请尝试引入1秒延迟来取消或确认错误!)
PS2另一种方法是搜索禁用的属性,如果未找到元素(即FALSE-->表示按钮已启用,然后使用前面指向“id”的xpath单击它)。element=disabled的xpath为:
//按钮[@id='submitButton'和@disabled='disabled']
因此,您可以将其存储在一个var中,并从那里控制流:
var buttonDisabled= driver.findElement(webdriver.By.xpath('//button[@id='submitButton' and @disabled='disabled']'));
if(isFound=true)
{
//THINGS TO DO IF BUTTON WAS FOUND (DISABLED)
}
else
{
//THINGS TO DO IF BUTTON WAS -NOT- FOUND (ENABLED)
}
希望这有帮助!:) 什么是参数[0]?你能粘贴代码吗?选择器self.browser.execute_脚本(“参数[0]。removeAttribute('disabled')”,选择器)我也尝试过:“document.getElementById('submitButton')。removeAttribute('disabled')”你如何定位参数?在元素上写入,是否激活submit按钮?您可能试图过早地找到它(即,尚未启用?)请尝试使用self.browser.execute_脚本(“参数[0].setAttribute('disabled','')、选择器)
var buttonDisabled= driver.findElement(webdriver.By.xpath('//button[@id='submitButton' and @disabled='disabled']'));
if(isFound=true)
{
//THINGS TO DO IF BUTTON WAS FOUND (DISABLED)
}
else
{
//THINGS TO DO IF BUTTON WAS -NOT- FOUND (ENABLED)
}