Javascript。点击DIV不工作,为什么?

时间:2018-04-10 12:38:32

标签: javascript html google-contacts

我正在使用Javascript来收集来自Google通讯录(https://www.google.com/contacts/u/0/?cplus=0#contacts)的联系人。我需要做的是导航到这个站点,点击DIV并提取html源。

问题是,当我手动点击DIV时,网站会有预期的行为。但是当我以编程方式对同一个DIV进行“点击”时,没有任何反应。

以下是有问题的DIV:

<div id=":se" class="tk3N6e-LgbsSe VIpgJd-TzA9Ye-eEGnhe Ycq2Ve tk3N6e-LgbsSe-roVxwc tk3N6e-LgbsSe-n2to0e tk3N6e-LgbsSe-vhaaFf-LK5yu ipG21e" role="button" tabindex="0" data-tooltip="Next" aria-label="Next" style="user-select: none;">
<span class="Fj0vqf" aria-hidden="true">&nbsp;</span>
<img class="P1rG1b tk3N6e-LgbsSe-RJLb9c" src="images/cleardot.gif" alt="">
</div>

为了完成任务,我正在使用这个JS:

document.getElementsByClassName('tk3N6e-LgbsSe')[7].click();

虽然上面的选择器返回正确的节点,但当我调用'.click()'时,没有任何反应。我在这里缺少什么?

以下是有问题的DIV突出显示的网站图片:

enter image description here 感谢

2 个答案:

答案 0 :(得分:4)

以下对我有用,在mousedown之后不得不做一个鼠标。

document.getElementsByClassName('tk3N6e-LgbsSe')[7].dispatchEvent(new MouseEvent('mousedown'))
document.getElementsByClassName('tk3N6e-LgbsSe')[7].dispatchEvent(new MouseEvent('mouseup'))

答案 1 :(得分:1)

点击绑定到TR元素。

document.querySelectorAll("tr.K9ln3e")[4].click()

而且我看到的不是你点击的人,而是箭头。有趣的是,我在gmail中没有足够的联系人来获得箭头所以我只能假设它会起作用

var dv = document.getElementsByClassName('tk3N6e-LgbsSe')[7]
var clickEvent = new MouseEvent('mousedown', {
  view: window,
  bubbles: true,
  cancelable: true
});
dv.dispatchEvent(clickEvent);