页面链接: https://contacts.google.com/u/1/?pageId=none https://contacts.google.com/u/1/?pageId=none
Desired:我想通过单击附图中突出显示的 SVG 插入符号图标来选择所有联系人。
面临的问题:出现错误元素不可见 on svgicon.click()
。尽管根据所附图像,元素在可见 DOM 中显然可用。
观察:我注意到,如果我们手动单击插入符号图标,则会通过 JavaScript 插入 DropDown html 代码,而在任何其他主体上单击,则会删除 DropDown html 代码。
我知道以下用于实现所需的代码语句是正确的并且可以工作,但不会填充 DropDown 。任何帮助深表感谢。
//find & click on SVG icon
svgicon = driver.find_element_by_css_selector('div.PFdmz .uzHa0d .RANAid[role="button"]')
svgicon.click()
//click on all link post dropdown appears
wait5.until(EC.presence_of_element_located((By.XPATH, '//div[@class = "jO7h3c" and text() = "All"]'))).click()
DOM图像
编辑 1 - 选择所有复选框的示例 Javascript 工作
t=0
for _ in range(len(driver.find_elements_by_css_selector('.XXcuqd div[role="checkbox"]'))):
cimgs = driver.find_elements_by_css_selector('.XXcuqd div[role="checkbox"]')
ActionChains(driver).move_to_element(cimgs[t]).perform()
driver.execute_script("arguments[0].click();", cimgs[t])
t = t+1
如果我们可以使用这种方法来减少标记所有复选框所花费的时间(一次性代替使用动作链),那么这也将解决问题。在任何时候我都会有 10000 多个联系人参与此活动。