@@ -214,13 +214,33 @@ class InjectionTargetsOnWebsite {
214214 getDefaultSelectors ( site ) {
215215 const selectors = {
216216 ChatGPT : {
217- containers : [ 'div.flex.w-full.flex-col:has(textarea)' ] ,
217+ // Updated May 2025 for new ChatGPT UI
218+ containers : [
219+
220+
221+ 'form[data-type="unified-composer"] > div.rounded-\\[28px\\]' ,
222+ 'div.flex.basis-auto.flex-col.shrink.min-\\[510px\\]\\:max-\\[768px\\]\\:mt-\\[25dvh\\]\\!' ,
223+ 'div#conversation-header-actions' ,
224+ 'div.relative.flex.w-full.items-end.px-3.py-3' ,
225+ 'div.relative.flex.w-full.items-end' ,
226+ 'div.flex.w-full.items-end' ,
227+ 'div.flex.w-full.flex-col:has(textarea#prompt-textarea)' ,
228+ 'div.flex.w-full.flex-col:has(textarea)' ,
229+ 'main.flex.flex-col.items-center'
230+ ] ,
218231 sendButtons : [
219- 'button[data-testid="send-button"]' ,
220- 'button.send-button-class' ,
221- 'button[type="submit"]'
232+ 'button[aria-label="Send message"]' , // new main send button
233+ 'button[data-testid="send-button"]' , // legacy/testid fallback
234+ 'button[type="submit"]' , // generic fallback
235+ 'button.send-button-class' // legacy fallback
236+ ] ,
237+ editors : [
238+ 'div.ProseMirror#prompt-textarea[contenteditable="true"]' , // new main editor
239+ 'div.ProseMirror[contenteditable="true"]' , // fallback
240+ 'div[contenteditable="true"].ProseMirror' , // fallback
241+ 'div.ProseMirror' , // legacy fallback
242+ 'textarea' , // ultimate fallback
222243 ] ,
223- editors : [ 'div.ProseMirror#prompt-textarea' , 'div.ProseMirror' ] ,
224244 buttonsContainerId : 'chatgpt-custom-buttons-container'
225245 } ,
226246 Claude : {
0 commit comments