#python #selenium #odoo
#python #selenium #odoo
Вопрос:
Любой может использовать selenium или что-то подобное в модуле odoo.
Когда я запускаю selenium в одиночку, он возвращает нормальный результат, но когда я интегрирую его в модуль odoo
я получил ошибку
selenium.common.exceptions.SessionNotCreatedException: Message: session not created
from tab crashed
вот мой код
/*helper.py*/
from selenium import webdriver
from selenium.webdriver import Chrome
from time import sleep
def get_address(tax):
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
driver = Chrome('chromedriver',options=options)
driver.get("https://dichvuthongtin.dkkd.gov.vn/inf/default.aspx")
driver.find_element_by_css_selector('#FrontPG-2').click()
driver.find_element_by_css_selector('#ctl00_C_RptProdGroups_ctl02_LiActiveProdGroup #LnkActiveProdGroup').click()
a = driver.find_element_by_css_selector("#ctl00_C_UC_ENT_LIST1_ENTERPRISE_GDT_CODEFilterFld")
a.click()
a.send_keys(tax)
driver.find_element_by_css_selector('#ctl00_C_UC_ENT_LIST1_BtnFilter').click()
sleep(0.5)
result = driver.find_element_by_css_selector('#ctl00_C_UC_ENT_LIST1_CtlList_ctl02_Cmd4').text
return result
/*einvoice_invoice.py*/
from odoo import models, fields, api
from . import helper
class ResPartner(models.Model):
_inherit = "einvoice.invoice"
@api.onchange('tax')
def _get_partner_info(self):
print("haha")
address = helper.get_address(self.tax)
print(address)
self.user_address= address
Комментарии:
1. Привет, я столкнулся с такой же проблемой. Есть ли у вас какое-либо решение?
2. @BalvantRamani сейчас я использую selenium с phantomjs
Ответ №1:
решение этого вопроса — установить Selenium Grid и PyVirtualDisplay (для этого вы можете использовать docker) и попробовать с Remote()
опцией:
webdriver.Remote(URL_SERVER_SELENIUM, options);
Это работает для меня.