Closed nikos-pappas closed 3 years ago
Have the same issue, confirm Regards, Vasyl
thanks for reporting this - can you copy the join url from the log output of the docker container and open it in your browser - what does it show? I guess something changed there - any popups? Or does it right away open the room?
Yes, there is a popup asking for pernission to use audio
The corresponding fragment of code (messages in Ukrainian)
<button aria-label="Відтворювати звук" aria-disabled="false" class="jumbo--Z12Rgj4 buttonWrapper--x8uow button--Z23moYP"><span class="button--Z2dosza jumbo--Z12Rgj4 success--Z6UU8x circle--Z2c8umk"><i class="icon--2q1XXw icon-bbb-thumbs_up"></i></span><span class="label--Z12LMR3">Відтворювати звук</span></button>
Regards, Vasyl
that's what I thought ...so skipping the audio dialog does not work anymore. the parameter: joinParams['userdata-bbb_auto_join_audio'] = "true" seems to be ignored. This was the case for moderators in the past and now the bug also affects attendees.
Could you open an issue in the bigbluebutton repo and link here? We could click the button with selenium, but this would be a workarround and the setting still would be broken - so I think the clean way would be resolving the issue directly.
cheers
Crated BBB issue https://github.com/bigbluebutton/bigbluebutton/issues/11933 Regards, Vasyl
thanks! awesome! cheers
Thanks to @pedrobmarin commented When I need to run those things in automation I set --no-user-gesture-required ...this should fix the problem - so anybody feel free to add this to the chromium call and test this and get back with the results - and possibly a pr :-) cheers
Just added this to the chromium call and it does not fix the issue. Will take a look on whether we can just click this away and send a PR.
ok, the correct key is --autoplay-policy=no-user-gesture-required
; This works on CLI, but the container still fails; Digging further.
solved, PR inbound
Thanks Tobias! apreciate your work! Will merge it as soon as your PR is shown. cheers
Ups... wait... just regression tested on 2.2 -.-' That of course breaks. Will have to figure out a version check.
ah, please also check if other selenium licks may have to be removed, because of some dialogues disappearing due to this setting ;-)
should work for 2.2 and 2.3 as far as I understand. as written above there may be other popups that now are gone and lead to crashes.
What i essentially did:
tfiebig@DESKTOP-1J9BJ88 BigBlueButton-liveStreaming % git diff
diff --git a/stream.py b/stream.py
index e9478a9..ab63cf5 100644
--- a/stream.py
+++ b/stream.py
@@ -101,6 +101,7 @@ def set_up():
options.add_experimental_option("excludeSwitches", ['enable-automation'])
options.add_experimental_option('prefs', {'intl.accept_languages':'{locale}'.format(locale='en_US.UTF-8')})
options.add_argument('--start-fullscreen')
+ options.add_argument('--autoplay-policy=no-user-gesture-required')
if args.browser_disable_dev_shm_usage:
options.add_argument('--disable-dev-shm-usage')
else:
@@ -135,7 +136,6 @@ def bbb_browser():
element = EC.presence_of_element_located((By.XPATH, '//span[contains(@class,"success")]'))
WebDriverWait(browser, selenium_timeout).until(element)
- browser.find_elements_by_xpath('//span[contains(@class,"success")]')[0].click()
element = EC.invisibility_of_element((By.CSS_SELECTOR, '.ReactModal__Overlay'))
WebDriverWait(browser, selenium_timeout).until(element)
I assume that the removed line is somewhat essential for 2.2. Do you know if we can easily get the html5-client version from stream.py? Then we can just put an if in front of that.
you also have to remove the two lines below ... the first one searches if the tag exists. the others look if the popup comes up and waits as I understand. I did the same in the chat.py when I removed audio from there as the popup disappered of course. So have a look at my last PR to chat.py and see wich lines where removed - same is needed here if the popup is gone. ;-) You can check if the popup has disappeared by copying the join link from the logs and open it in a browser window ... hope that helps
Thanks. On that already; The thing is that in 2.3 the popup is gone and in 2.2 it is still there; Should be doable though, thx.
oh. that's not nice ...(from BBB) so we have to have an ugly workarround for that. Think they should fix that in 2.2 then, so we can remove the workarround then - what do you think? Could you post that to the issue linked above so they may repair it hopefully, when you got it to work?
Well, so what apparently works is a 10s sleep instead of those 5 lines to make everything work as expected. Let me just try to find the right element to wait for, then we don't need upstream changes or ugly workarounds.
Got it, eta 5min
a 10 sec sleep cannot work I guess, as this won't give access to the audio? It does exit the popup and you won't get audio from the meeting though. So we will have to click if there is the popup asking to allow audio.
With the right cli switch (pedro's wasn't correct, see above) there is no popup.
Verified audio and streaming work with the change on bbb2.2 and 2.3-beta-3; PR inbound
Well, I did not mentioned it would fix your problem. I just said it works for me at https://github.com/mconf/bigbluebot . Either way, thanks for mentioning.
No worries. Google seems to just have renamed the option somewhen in the past. :-)
Edit: Meaning effectively it did fix the problem. ;-)
Thanks @pedrobmarin
for pointing us to the flag and @ichdasich
for investigating the google change and fixing this.
cheers
This very useful app performed well up to bbb version 2.3-beta1. Unfortunately I 've just upgrade it and Live streaming is not working with the new BigBlueButton 2.3.0-beta-2
It joins the room for a second and then it fails
log in docker shows: File "stream.py", line 251, in
bbb_browser()
File "stream.py", line 138, in bbb_browser
browser.find_elements_by_xpath('//span[contains(@class,"success")]')[0].click()
File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webelement.py", line 80, in click
self._execute(Command.CLICK_ELEMENT)
File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element ... is not clickable at point (1857, 27). Other element would receive the click: ...
(Session info: chrome=89.0.4389.114)