2017-06-15 58 views
0

我正在创建一个Chrome浏览器扩展程序,可以在出现时自动点击某些按钮。我正在使用arrive.js进行观看,该观看使用查询选择器来观看要点击的html元素。只有在网站没有按钮B的情况下,查询选择器才能选择按钮A.

var buttonA = 'a[data-test="begin-session-button"]' 
var buttonB = 'a[data-test="skill-header-practice-button"]' 

document.arrive(buttonA, function() { 
    document.querySelector(buttonA).click(); 
}); 

document.arrive(buttonB, function() { 
    document.querySelector(buttonB).click(); 
}); 

这个问题我有一些网站有两个按钮buttonAbuttonB。到目前为止,这两个按钮都会被点击,并且最后点击的是运气。

每当有一个网站与buttonAbuttonB,只需点击buttonA。所以我希望改变查询buttonB,如:

document.arrive(buttonB + ' :not:' + buttonA, function() { 
    document.querySelector(buttonB).click(); 
}); 

如Chrome浏览器控制台的查询,这将是这样的:

document.querySelector(
    'a[data-test="skill-header-practice-button] ' + 
    ':not:a[data-test="begin-session-button"]' 
) 

这是错误的语法和铬不工作浏览器控制台。正确的语法怎么样?

回答

1

你能不能做这样的事

document.arrive(buttonA, function() { 
    document.querySelector(buttonA).click(); 
}); 

document.arrive(buttonB, function() { 
    if(document.querySelector(buttonA) == null){ 
    document.querySelector(buttonB).click(); 
    } 
}); 

我不能说我已经使用了到达图书馆,虽然之前,我就可以完全错误的

1

我想这是简单做“编程”比复杂的选择,像(与您的代码工作,因为buttonA是全球性的,要小心,这个变种必须是功能访问):

var buttonA = 'a[data-test="begin-session-button"]' 
var buttonB = 'a[data-test="skill-header-practice-button"]' 

document.arrive(buttonA, function() { 
    document.querySelector(buttonA).click(); 
}); 

document.arrive(buttonB, function() { 
    var buttA = document.querySelector(buttonA); 
    if(buttA === null){ 
    document.querySelector(buttonB).click(); 
    } 
}); 
相关问题