使用Selenium

时间:2018-06-04 14:24:17

标签: python selenium-webdriver

我试图点击网站上的链接,其中有一整页。我尝试使用is_displayed()选项,我回来了#34; true"但后来仍然给了我这个错误。我之前在其他项目上遇到过这个错误,因为selenium没有看到这个链接。我尝试在代码中放置一个向下滚动选项,但只有在页面向下滚动太远时才会工作很多次。

我还有哪些其他选项可以点击链接?

代码:

href1 = driver.find_element_by_xpath("//*[@id='divDesktopResults']//div//div//div//a[@href='" + link + "']")

if (href1.is_displayed()):
    print('true')
    href1.click()
else:
    print('False')

错误:

selenium.common.exceptions.WebDriverException: Message: unknown error: Element <a class="popimg" data-toggle="popover" style="text-decoration:underline;margin-right:20px;" data-content="<img style='max-width:250px;' src='/Home/GetPng?ID=D218098469' ></a>" data-html="true" data-trigger="hover" href="#pdfviewer?ID=D218098469">...</a> is not clickable at point (441, 514). Other element would receive the click: <div class="row">...</div>
 (Session info: chrome=66.0.3359.181)
 (Driver info: chromedriver=2.38.552522   (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Windows NT 10.0.16299 x86_64)

编辑:

解决另一种方法,将所有链接放在一个数组中并使用driver.get而不是单击链接。

1 个答案:

答案 0 :(得分:0)

Selenium抱怨说链接无法看到,但其他内容基本上位于链接之上。单击链接所在的屏幕将改为单击“行”div。这意味着CSS错误,其中您有多个元素一个在另一个之上。您可以通过为链接提供非常高的Z值来确认这一点,以便它位于其他所有值之上并重新运行测试。