我正在使用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"> </span>
<img class="P1rG1b tk3N6e-LgbsSe-RJLb9c" src="images/cleardot.gif" alt="">
</div>
为了完成任务,我正在使用这个JS:
document.getElementsByClassName('tk3N6e-LgbsSe')[7].click();
虽然上面的选择器返回正确的节点,但当我调用'.click()'时,没有任何反应。我在这里缺少什么?
以下是有问题的DIV突出显示的网站图片:
答案 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);