testing using selenium: chrome screensharing auto select tab and share with audio - selenium

I am testing my website using Selenium and I am able to open chrome with --auto-select-desktop-capture-source="tab_name" and select the tab when screen share is enabled. Now I want the audio playing in the tab to be in my stream along with the video. While doing it manually there is a checkbox which enables audio sharing but is there something which can help enable it from Selenium?
Here is a fiddle: https://jsfiddle.net/john_vera/yr2k9xob/5/
Notice the Share Audio checkbox after selecting chrome tab in the dialog. I want to check that from Selenium.

You could create an custom chromium build and implement an bypass for this dialog. To build chromium you can use these instructions (for windows): Here
Here the bypass in file display_media_access_handler.cc:
Look for this line:
// Orignal code
pending_request.picker->Show(picker_params, std::move(source_lists), std::move(done_callback));
And replace it with this
// Bypass dialog
content::DesktopMediaID screenSource(content::DesktopMediaID::TYPE_SCREEN, content::DesktopMediaID::kNullId, web_contents);
screenSource.audio_share = true;
OnPickerDialogResults(web_contents, screenSource);
// End of bypass
I testet it with Chromium Version 84.

Related

Chromium selenium webdriver disable zoom-in option

I am trying to find a way to disable zoom in option in selenium webdriver, I am using chromium and there is no command line switch for this in docs, browser is in kiosk mode with touchscreen and user are able to zoom-in with two fingers, how to prevent that?

VueJs dev tools panel not showing

I started using vue dev-tools in my application but it is not visible when in developer mode in Chrome. I tried various solutions found on the dev-tools github page and in other places on the web, but no luck. Below are the things i have done/tried to get it to display.
Enabled allow access to file URL’s option in the chrome extension
Added Vue.config.debug = true; Vue.config.devtools = true; just before new Vue({})
Added non-minified versions of VueJS file
Also I am using Chrome latest version: 55.0.2883.87.
I do get the following message when I click on the chrome extension
Except the panel is not actually showing.
Does anyone have a solution to this? Thanks.
I could not get the Vue icon to be active on the menu bar, however I was able to get the Vue tab to show in the Chrome developer tools. Try the following:
Close the Chrome developer tools window
Hard refresh the browser
Re-open the developer tools window and look for the Vue tab
The icon in the toolbar might still indicate that it cannot detect Vue, but the tab should be visible in the Chrome developer tools.
I had this same issue, I was using minified vue from cdn "vue.min.js" .Then I removed that and used non-minified vue. Then I reloaded browser and reopened console and the vue tab was there.
For me, I was running a local HTML file. By default, Chrome blocks extensions from working on local files.
3-dot menu -> More Tools -> Extensions
Find the Vue extension, click details and change turn on the setting "Allow access to file URLs:
Screenshot
close & reopen chrome
Also found today that if you have an ad blocker installed that this also stops Vue Devtools from running properly.
Closing the file tab and reopening it worked for me.
Restart many times Google Chrome
Don't use min file
And add before new vue instantiation:
Vue.config.devtools = true;
chrome developer tools should be close before enabling the vue dev tools extention...
(if chrome devtools is open, close chrome development tools and re-open)
Just do a "hard reload" for a few times. On windows: SHIFT + F5.
On Mac: CMD + SHIFT + R.
Use the devtools beta for Vue 3. And always check if your Vue app mounted correctly.
Step 1: add vue.js devtools as an extension from here
step 2: After adding vue.js devtools, close your browser.
Step 3: Open your browser and open your html page.
Step 4: click right side of your mouse and select inspect and try to find Vue.
Note: If you didn't added the CDN of vue.js, then add these line to your html file.
<script src="https://cdn.jsdelivr.net/npm/vue#2"></script>
You should enable Allow access to file URLs from Vue extension and then hard refresh your page with Shift + F5
It worked for me
(For Firefox Browser) If the add-ons 'Vue.js devtools' is added in browser..Just click on Inspect Element (or press F12) and there is a tab of Vue along with Inspector, Console, Network etc. Click on that Vue tab and enjoy debugging.
Just do hard reload and close development console then reopen it.
Hard Reload, help me.
Open devtools -> right click on reload button -> Hard Reload
Please make sure you don't use the production CDN. The only way that make it work for me is to use the VueJS dev version.
Development : vue.js
This happens to me periodically, pretty annoying because there seems to be no cause.
Go to Chrome browser extensions
Remove the Vue DevTools extension
Add it back again
Hard refresh your page
Chrome - Version 71.0.3578.98
MacOS Mojave 10.14
VueJS 2.5.21
close the chrome app
re-run development server
re-open chrome app
open localhost
press F12 (to open development tools)
In case you are using vue3, uninstall Vue devtool extension and install the beta version.
you can install it for chrome from the below link:
https://chrome.google.com/webstore/detail/vuejs-devtools/ljjemllljcmogpfapbkkighbhhppjdbg
In #Daryn answer he mention that he has problems witch vue icon - here is solution to this part of running vue extension on chrome which in the same time also solve OP problem for me:
During plugin installation for short moment in upper right chrome corner the VUE ICON appears with message (screenshot is not my):
And CRITICAL is to click right button on that icon (without close that message!) and choose "PIN" (it pin to extensions icons bar) - if you not do it - then you will never see that icon again (which is mistake). After that shut down and reopen chrome. And now in you page with vue, this icon should have green colors (you can click on it) and click right button on some page element (or on screen center) and choose "Inspect" to see
maybe you can go to settings then go to preferences then look for persistence then enable local overrides, sorry my english is not good
Don't know if this helps but make sure to refer to app.js in your view file you are rendering in your current path. Laravel example from view file: <script src="{{ asset('js/app.js') }}" defer></script>
This way the vue extension starded working for me.
You should run
npm run watch
or
npm run dev
otherwise you can not see Vue Toolbar
Restarting Chrome worked for me
Maybe obvious but the Vue panel is not available when in incognito mode. In this case, the Vue icon is not visible either.
Enter chrome://extensions in the address bar and click on Details for Vue.js devtools. Scroll down to "Allow in Incognito" and switch to On.
don't forget about
npm run dev
(or something like in your project)
And then try advisions from first answers

Debugging background scripts in safari extension

I am working on a custom Safari extension and would like to debug the Background scripts. I am not certain how to do this? Ideally, if there was a way to step into the background scripts, that would be great. But when I try to step into a background call, the Safari debugger just steps to the next line. The console.log within the background scripts do not get printed to the console (This is the console I launched from right clicking a popover that is part of the extension and then hitting inspect).
Any help on this would be great. Thank you.
This is an old question that asks about a different type of Safari extensions but I figured it could be helpful to add an updated answer now that Safari (v14) supports the Web Extensions API (similar to the API that all other major browsers use).
Debugging background scripts is now built into the Safari menu in the toolbar: "Develop" => "Web Extension Background Pages" => select your (enabled) extension. That should open the dev tools with all your background scripts where you can set breakpoints, check the network tab, etc..
As a side note, you can debug your extension's popup by opening it, right clicking the popup and clicking "Inspect Element".
In case this comes useful for someone - I figured out a way to view console statements in the background scripts. Open the extension builder and click on Inspect Global Page. Go to the console tab and the console.log messages in the background scripts will be printed in that console.
Now you can use Safari Preview to debug your Safari App Extension. There is a control to select the extension container at the lower-right corner of the console.

Appium: How to get current window?

I have Appium 1.4.13
IOSDriver<MobileElement> driver = new IOSDriver<MobileElement>(appiumUrl, desiredCapabilities);
How do I get current window (UIAWindow)? How do I get all elements on that window?
hi Artem appium tool only automates the app not android functionalities so you cant retrieve like home, settings window just like selenium does browser automation not the windows system (for that we use external tools like AutoIt and Sikuli), To retrieve app handles we use getcontextHandles() method to know we are in native app or Web view... hope this helps

Selenium: How can I get the link for downloads that started automatically?

I am using selenium to automate some downloading tasks, but some pages start the downloads automatically and I need to know the links of those downloads during or after the download and the link is not available in the page.
How can I get the URL of the files that started downloading automatically?
If you are using Chrome to run your selenium scripts you can just navigate to the chrome://downloads/ and get the latest download file's URL.
Or you can fire a Ctrl+J keyboard action to the browser using java robot classes and open the tab.
(Chrome downloads page is a html page and you can capture elements in it)