我想单击display属性为none的元素。我该怎么办?
display
none
验证码:
page.click(".foo");
字符串
3htmauhk1#
您可以使用JavaScript click函数。该函数将触发元素的单击事件,并且不关心元素是否可见。您需要使用page.evaluate在页面内执行它。
click
page.evaluate
示例:
await page.evaluate(() => { document.querySelector('.foo').click(); });
bpsygsoo2#
问题仍然是实际的,没有为我工作使用:等待页面.evaluate(()=> { document.querySelector('. foo').click();});在花了至少半天的时间之后,我做了一个小技巧,将CSS的'display'属性更改为'inherit',单击()一个元素,并将CSS的'display'恢复为原始状态。
let inputCheckBox = await document.querySelector("input[type='checkbox']"); const cssDisplay = inputCheckBox.style.display; if (!cssDisplay || 'none' === cssDisplay) { inputCheckBox.style.display = 'inherit'; } await inputCheckBox.click(); if (cssDisplay !== inputCheckBox.style.display) { inputCheckBox.style.display = cssDisplay; }
0yycz8jy3#
托马斯的答案的一个变体,使用$eval来实现更紧凑的代码。
await page.$eval('.foo', el => el.click())
3条答案
按热度按时间3htmauhk1#
您可以使用JavaScript
click
函数。该函数将触发元素的单击事件,并且不关心元素是否可见。您需要使用
page.evaluate
在页面内执行它。示例:
字符串
bpsygsoo2#
问题仍然是实际的,没有为我工作使用:等待页面.evaluate(()=> { document.querySelector('. foo').click();});
在花了至少半天的时间之后,我做了一个小技巧,将CSS的'display'属性更改为'inherit',单击()一个元素,并将CSS的'display'恢复为原始状态。
字符串
0yycz8jy3#
托马斯的答案的一个变体,使用$eval来实现更紧凑的代码。
字符串