Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在未找到元素时继续运行的Python selenium脚本_Python_Selenium - Fatal编程技术网

在未找到元素时继续运行的Python selenium脚本

在未找到元素时继续运行的Python selenium脚本,python,selenium,Python,Selenium,我正在处理一个弹出的问题,在我点击按钮之前,它似乎是随机的。我想知道是否有任何方法可以检查元素是否显示并单击它,如果没有显示,我希望它继续运行脚本。我当前的脚本不断出错。当弹出窗口显示时,我的脚本运行正常。我的错误发生在脚本上的 onetouch = self.driver.find_element _by_xpath(""). 以下是我的错误图片: 实际上,find\u element\u by\u xpath总是返回元素或抛出异常,因此,如果提供的定位器没有元素,则无法执行is\u d

我正在处理一个弹出的问题,在我点击按钮之前,它似乎是随机的。我想知道是否有任何方法可以检查元素是否显示并单击它,如果没有显示,我希望它继续运行脚本。我当前的脚本不断出错。当弹出窗口显示时,我的脚本运行正常。我的错误发生在脚本上的

onetouch = self.driver.find_element _by_xpath(""). 
以下是我的错误图片:


实际上,
find\u element\u by\u xpath
总是返回元素或抛出异常,因此,如果提供的定位器没有元素,则无法执行
is\u display()
。您应该尝试使用
find\u elements\u by\u xpath
,并检查长度,如下所示:-

onetouch = self.driver.find_elements_by_xpath(".//*[@id='memberReview']/div[2]/div/div/div[2]/div[1]/div[1]/a")

    if len(onetouch) > 0:
        time.sleep(2)
        onetouch[0].click()
    else:
        print "onetouch not present....continuing script"
        -------
请尝试以下操作:

from selenium.common.exceptions import NoSuchElementException

try:
    time.sleep(2)
    self.driver.find_element_by_xpath(".//*[@id='memberReview']/div[2]/div/div/div[2]/div[1]/div[1]/a").click()
except NoSuchElementException:
    print "onetouch not present....continuing script"

@Tonysanschez,是的,你应该用这个更改编辑你的脚本…:)@Tonysanschez是的,如果有问题请告诉我…:)好的,所以我得到了相同的错误,因为它找不到“self.driver.find_elements_by_xpath”(./*[@id='memberReview']/div[2]/div/div/div/div[2]/div[1]/div[1]/a”)”因为弹出窗口没有显示一次,所以从xpath中省略
,并尝试使用:
self.driver.find_elements\u by_xpath(“/*[@id='memberReview']]/div[2]/div/div/div/div‌​[2] /div[1]/div[1]/a”)
并让我知道..您确定通过xpath查找元素吗引发异常??因为如果定位器没有提供任何元素,它总是返回空列表。。。奇怪的是,为什么会出现异常……您可以为目标页面共享
HTML
?显然,问题不在元素中提供的
XPath
im在登录到我的paypal后,在自动结账时使用它,偶尔会出现一个弹出窗口。抱歉,提供的信息不够。我需要更多的细节来帮助你成功!问题是我仍然在画面中!在使用您的解决方案之前,我必须将驱动程序返回到默认值。非常感谢。
from selenium.common.exceptions import NoSuchElementException

try:
    time.sleep(2)
    self.driver.find_element_by_xpath(".//*[@id='memberReview']/div[2]/div/div/div[2]/div[1]/div[1]/a").click()
except NoSuchElementException:
    print "onetouch not present....continuing script"