Я угадаю.
Вы помещаете код в ' '
в innerHTML='...'
, но внутри BB-кода у вас также есть '
в [URL='https:///coral-lps-6/']
, и, вероятно, это может создать проблему. Он может создать неправильный код JavaScript, например
'code'https:///coral-lps-6/'code'
, который можно рассматривать как три элемента
'code' https:///coral-lps-6/ 'code'
Возможно, вам следует использовать " "
в innerHTML="..."
или в BB-коде.
js = 'arguments[0].innerHTML = "{}"'.format(code)
Кстати: r"{}".format(bb_code)
бесполезно. Это ничего не меняет в bb_code
. И точно не добавляет " "
к bb_code
. Для добавления " "
- r'"{}"'.format(bb_code)
EDIT: потребуется внешний *1034*, потому что BB-код находится во многих строках, поэтому в конце может потребоваться \
строк, чтобы сообщить JavaScript, что это не конец строки.
bb_code = '''[B][FONT=Trebuchet MS][SIZE=7]Meteor[/SIZE][/FONT][/B]\
[COLOR=#000000][FONT=Verdana][I][B][SIZE=4]n: [/B][/I][/FONT]\
[S][B][FONT=Verdana]ki[/SIZE][/FONT][/B][/S][/COLOR]\
[URL='https:///coral-lps-6/']\
[FONT=Impact][SIZE=7][COLOR=#F41600][U]CLICK HERE TO BUY![/U][/COLOR][/SIZE][/FONT][/URL]'''
js = 'arguments[0].innerHTML = "{}"'.format(bb_code)
print(js)
self.browser.execute_script(js, messageBox)
РЕДАКТИРОВАТЬ: Этот код работает для меня. Он помещает BB-код в текстовую область для ответа на текущей странице.
import selenium.webdriver
driver = selenium.webdriver.Firefox()
driver.get('/13042897/zapolnite-tekstovoe-pole-kodom-bb-v-selenium-python')
messageBox = driver.find_element_by_id('wmd-input')
bb_code = '''[B][FONT=Trebuchet MS][SIZE=7]Meteor[/SIZE][/FONT][/B]\
[COLOR=#000000][FONT=Verdana][I][B][SIZE=4]n: [/B][/I][/FONT]\
[S][B][FONT=Verdana]ki[/SIZE][/FONT][/B][/S][/COLOR]\
[URL='https:///coral-lps-6/']\
[FONT=Impact][SIZE=7][COLOR=#F41600][U]CLICK HERE TO BUY![/U][/COLOR][/SIZE][/FONT][/URL]'''
js = 'arguments[0].innerHTML = "{}"'.format(bb_code)
#print(js)
driver.execute_script(js, messageBox)