Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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 Chromedriver - Fatal编程技术网

Python selenium可选单击链接

Python selenium可选单击链接,python,selenium-chromedriver,Python,Selenium Chromedriver,我有一个selenium,假设在访问页面时单击链接下载文件, 虽然并非所有页面都有此链接 因此,我的问题是,如果页面上有链接,就可以单击它,如果没有链接,就可以继续执行其他任务 我的问题是在没有链接的页面上,它会导致程序停止和崩溃。 我正在寻找一种可能的方式来点击链接,如果链接不存在,就继续做其他事情 try: instructions= WebDriverWait(self.driver,5).until(EC.ele

我有一个selenium,假设在访问页面时单击链接下载文件, 虽然并非所有页面都有此链接

因此,我的问题是,如果页面上有链接,就可以单击它,如果没有链接,就可以继续执行其他任务

我的问题是在没有链接的页面上,它会导致程序停止和崩溃。 我正在寻找一种可能的方式来点击链接,如果链接不存在,就继续做其他事情


                try:

                    instructions= WebDriverWait(self.driver,5).until(EC.element_to_be_clickable(
                        (By.XPATH,"//dl//div[@class='paper_instructions_view']/a")))

                    if instructions:
                        instructions.click
                    pass

                finally:
                    enter_amount = self.driver.find_element_by_xpath("//input[@id='id_bid']")
                    enter_amount.send_keys(get_budget)
                    
                    time.sleep(5)

                    apply= WebDriverWait(self.driver,200).until(EC.element_to_be_clickable(
                        (By.XPATH,"//input[@id='apply_order']"))).submit()
                                        
                    
                    self.click_on_order_button_from_inside()

首先仔细分析脚本抛出的错误。 在“finally”之后的第一行中的示例中,您试图查找ID=“ID\u bid”的元素,但始终调用此代码,若缺少此对象,则会出现错误。 您只需要将所有可能失败的操作(例如all find_element_by…)移动到try子句。 关于try的更多信息,除了最后一点:
问题是您处理异常的方式。在第一个回答中,无论按钮是否存在,都会显示最终块将始终被执行。假设您正在检查页面上的
说明
链接。您可以执行以下操作:

try:
    instructions= WebDriverWait(self.driver,5).until(EC.element_to_be_clickable(
                       (By.XPATH,"//dl//div[@class='paper_instructions_view']/a"))).click()
except NoSuchElementException:
    pass

上面的代码将查找
说明链接
,如果找到它,将单击它,否则它将通过
传递

您正在检查的URL是什么?