Selenium Python-测试页面中是否存在元素

Selenium Python-测试页面中是否存在元素,python,selenium,xpath,Python,Selenium,Xpath,我是Selenium的新手,我想编写一个Python脚本,在google上搜索一些关键字,并在找到关键字时自动打开一个页面 我一直在尝试使用以下脚本: 如果xpath显示在页面中,它将非常有效。然而,如果不是,我们将永远等待 我如何检查元素是否在那里,如果它在那里,我如何单击它 我试着使用文档中给出的“try”,或者NoSuchElementException,但我承认被与“双重否定”混淆了;-): 最后,我想要一个while循环,它会转到googleresults的第X页,并在每次找到特定地址

我是Selenium的新手,我想编写一个Python脚本,在google上搜索一些关键字,并在找到关键字时自动打开一个页面

我一直在尝试使用以下脚本:

如果xpath显示在页面中,它将非常有效。然而,如果不是,我们将永远等待

我如何检查元素是否在那里,如果它在那里,我如何单击它

我试着使用文档中给出的“try”,或者
NoSuchElementException
,但我承认被与“双重否定”混淆了;-):

最后,我想要一个while循环,它会转到googleresults的第X页,并在每次找到特定地址时单击


如果有人能帮我一把,那就太好了!我敢肯定这是微不足道的,但尽管网上提供了所有的文档,我在过去几天里都没能解决这个问题…

这是我为WebElement编写的一个小包装器,希望能有所帮助

class Element(object):

    def __init__(self, xpath=None):
        self.xpath = xpath

    def __get_element(self):
        return Driver().find_element_by_xpath(self.xpath)


    def is_exist(self):
        try:
           return self.__get_element().is_displayed()
        except NoSuchElementException, e:
            logger.exception(e.message)
            return False
不能单击不可见的图元,首先需要将其公开,然后仅单击


希望它对您的第二个块有所帮助

您还没有真正完成try/exception。如果您包含
但未找到NoSuchElementException:print”元素“
最后:
行之前,您的程序将打开页面,等待10秒,等待元素出现,允许您与它交互,否则它将在10秒内找不到它,并打印出消息。无论哪种方式,它都会在最后关闭浏览器。谢谢您的回答。NoSpuchelementException是“like”和“else if”吗?如果我将except NoSuchElementException:print放入“未找到元素”,则即使链接位于页面上,它也会打印该元素。我想要的是:1)尝试在max.10s中找到链接2)如果找到了,然后单击它;3)如果找不到,则单击driver.quit()。可以考虑使用类似的异常捕获,如果/否则我猜是这样<代码>尝试此方法,如果有效,请执行此操作,否则请执行其他操作,而不是爆炸。如果您总是看到打印行,可能是您的选择器不正确?@MarkRowlands我写了一个答案,向您展示我尝试的代码谢谢!我现在要试试看:-)
class Element(object):

    def __init__(self, xpath=None):
        self.xpath = xpath

    def __get_element(self):
        return Driver().find_element_by_xpath(self.xpath)


    def is_exist(self):
        try:
           return self.__get_element().is_displayed()
        except NoSuchElementException, e:
            logger.exception(e.message)
            return False
class Element(object):

    def __init__(self, xpath=None):
        self.xpath = xpath

    def __get_element(self):
        return Driver().find_element_by_xpath(self.xpath)


    def is_exist(self):
        try:
           return self.__get_element().is_displayed()
        except NoSuchElementException, e:
            logger.exception(e.message)
            return False