【问题标题】:"Server Error in '/' Application" due to Oracle.ManagedDataAccess.Client.Oracle.Exception: ORA-20002: Procedure(CA_Clasic_Search)Error using Selenium由于 Oracle.ManagedDataAccess.Client.Oracle.Exception:ORA-20002:使用 Selenium 的过程(CA_Clasic_Search)错误导致“'/' 应用程序中的服务器错误”
【发布时间】:2019-01-31 20:38:32
【问题描述】:

我正在使用 Selenium 在 Python 3 中运行一个循环,该循环进入一个网站,输入用户名 + 密码,在搜索中输入公司名称(然后对于特定公司崩溃),并获取一些文本。生成每个循环以查找特定公司的收入,大多数搜索都会弹出此错误消息,但不是所有搜索。我发现在将公司名称输入搜索栏后单击搜索按钮时会发生错误。

def rev_finder(company,driver):
  page = 'https://corporateaffiliations.com/Nonsub/AccountHelp'
  driver.get(page)

  user = driver.find_element_by_id('strUserName')
  user.clear()
  user.send_keys(username)

  password = driver.find_element_by_id('strPassword')
  password.clear()
  password.send_keys(password1)

  button = driver.find_element_by_id('signOn')
  button.click()

  driver.implicitly_wait(5)

  search = driver.find_element_by_id('VAL_Name')
  search.click()
  search.send_keys(company)

  parent = driver.find_element_by_name('VAL_ParentMember')
  parent.click()

  button = driver.find_element_by_name('buttonSearch')
  button.click()

  driver.implicitly_wait(5)

  revenue = driver.find_element_by_xpath("/html/body/div/div[3]/div/table/tbody/tr/td/form/table[2]/tbody/tr[2]/td[6]/div").get_attribute("innerHTML")
  return revenue

def remove(string):
  string.replace("INC","").replace("Inc","").replace(".","").replace(",","")
  return string
companies = sheet['Company']
companies = companies[1:4]

revenue = []
for company in companies:
   company = remove(company)
   try:
      driver = webdriver.Firefox(executable_path=r'C:\Users\ktorres\Downloads\geckodriver-v0.24.0-win64\geckodriver')
      rev = rev_finder(company,driver)

   except:
      rev = 'Check Manually'
   revenue.append(rev)

【问题讨论】:

  • 您在哪一行/操作之后看到了这个错误?
  • button = driver.find_element_by_name('buttonSearch') button.click()

标签: python oracle selenium firefox geckodriver


【解决方案1】:

该错误与 Selenium 无关。它在您正在测试的网络应用程序中出现错误。 Selenium 完成了它的工作并发现了你的缺陷!

【讨论】:

【解决方案2】:

此错误消息...

“Server Error in '/' Application”
Oracle.ManagedDataAccess.Client.Oracle.Exception: ORA-20002: Procedure(CA_Clasic_Search)Error : Execution Error of Intermedia Query

...暗示当尝试更改服务请求所有者时,由于存在活动的工作流程,因此无法更改。

您的主要问题是在标识为 driver.find_element_by_name('buttonSearch') 的元素上调用 click() 的时间太早了,因为有一些 JavaScript / AJAX 更新了 @987654321 @。

你可以在ORA-20002 error when try to cancel active workflow on the Service Request form (Doc ID 2045240.1)找到关于这个错误的详细讨论


解决方案

您需要诱导 WebDriverwait 以使所需的 元素可点击,您可以使用以下解决方案:

WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.NAME, "buttonSearch"))).click()

【讨论】:

    猜你喜欢
    • 2021-05-03
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 2014-10-01
    • 1970-01-01
    相关资源
    最近更新 更多