“/”应用程序中的“服务器错误”是由于Oracle.ManagedDataAccess.客户端.Oracle.Exception异常:ORA20002:使用Selenium的过程(CA\u Clasic\u Search)错误

2024-04-19 01:16:18 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Copy of Error When Program is run, Using Firefox Browser

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)

Tags: dividbydriverrev公司buttonelement
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更新了HTML DOM。你知道吗

您可以在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()

这个错误与硒无关。这是您正在测试的web应用程序中的错误。硒已经完成了它的工作,发现你有缺陷!你知道吗

相关问题 更多 >