gpt4 book ai didi

python - 在 python selenium phantomjs 中单击可靠的随机链接

转载 作者:太空宇宙 更新时间:2023-11-03 14:32:45 25 4
gpt4 key购买 nike

我在 python 中使用这个函数从当前打开的页面中选择随机链接并单击它:

def click_random_link(driver):
print("Clicking random link ")
links = driver.find_elements_by_xpath("//*[@href]")
if len(links):
l = links[randint(0, len(links) - 1)]
print(l.get_attribute("href"))
sleep(1)
l.click()
return True
else:
print('Link NOT found....')
return False

看起来很简单,但它非常非常不可靠..在超过 80% 的时间内我会得到

errorMessage":"Element is not currently visible and may not be manipulated"

无论我在 phantomjs 中尝试什么,我都无法让它可靠地单击链接。我尝试过最大化窗口,尝试聚焦链接,但没有任何效果:(最后一枪到黑暗这里,但即使是全能的谷歌没有答案...

最佳答案

并非选择器获取的所有链接都是可见的 - 其中一些链接可能位于隐藏的 div 内,因此即使使用 action.move_to_element(l) 也无法处理它们...

要仅处理可见链接,您可以尝试以下代码:

def click_random_link(driver):
print("Clicking random link ")
links = [link for link in driver.find_elements_by_tag_name("a") if link.is_displayed()]
if links:
l = links[randint(0, len(links) - 1)]
driver.execute_script('arguments[0].scrollIntoView();', l)
print(l.get_attribute("href"))
sleep(1)
l.click()
else:
print('Link NOT found....')

关于python - 在 python selenium phantomjs 中单击可靠的随机链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47161536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com