I'm trying to use chrome/chromium headless on a debian server with no GUI. Everytime I try to use it I get the following errro regardless wether I'm logged in as root or as a non-root user.
How do I start chromium headless for the first time? Why can it not find the user data dir? I've also tried specifying the user data dir with --user-data-dir to no avail.
Related
I'm trying to decrypt HTTPS using Wireshark on Ubuntu 20.04.
I use this guide.
Basically:
You install Wireshark
You add SSLKEYLOGFILE environment variable
You open Chrome and visit the HTTPS site
You import the ssl key log file into Wireshark
And it decrypts the traffic
But no matter what I do, my .ssl-key.log file is empty. I closed Chrome and reopened it. Visited https://google.com and nothing is written in that file. I even restarted my laptop.
And these questions did not solve my problem:
Chrome not Firefox are not dumping to SSLKEYLOGFILE variable
SSLKEYLOGFILE environment variable doesn't populate any text file
I use chrome(Version 97.0.4692.99 (Official Build) (64-bit)) is worked.
you should run killall chrome to kill all chrome background instance.
then rerun google-chrome is work.
OR
user fiddler decrypt HTTPS,
https://docs.telerik.com/fiddler/configure-fiddler/tasks/decrypthttps
Decrypt HTTPS traffic with Wireshark and Fiddler
https://www.hhutzler.de/blog/decrypt-https-traffic-wireshark-fiddler/
The problem may be that Google Chrome doesn't have access to your user environment.
To resolve this,
launch google-chrome directly from a user terminal whenever you want to decrypt new traffic
or make a psueo-google-chrome launcher that points to the real google-chrome after setting the SSLKEYLOGFILE env variable
I just got a question recently about how to run chrome or chromium on our school machine (Ubuntu 16.04).
The machine is configured to mount user home folder via samba server with 700 permission. (I think it causes the problem of executing chrome)
When I execute the chromium-browser from terminal
chromium-browser
[26686:26686:1023/143803.603878:ERROR:process_singleton_posix.cc(278)] Failed to create /home/NETID/kharam/.config/chromium/SingletonLock: Operation not supported (95)
[26686:26686:1023/143803.603961:ERROR:chrome_browser_main.cc(1639)] Failed to create a ProcessSingleton for your profile directory. This means that running multiple instances would start multiple browser processes rather than opening a new window in the existing process. Aborting now to avoid profile corruption.
I've tried to run chromium on the local account, and it ran.
Is there possible solution??????????
Thank you
Testing with PayPal checkout with Selenium & chrome webdriver.
I have tried using another domain name, localhost and 127.0.0.1
It may be important to note i am running inside a Vagrant machine (homestead)
Also tests run manually work.
I believe the issue to be an environment variable
PAYMENT_SANDBOX_PAYPAL_URL=http://localhost:8000/checkout/, however that is confusing as from what i understand there should be no difference when running automated tests with a webdriver.
Is this a networking issue with vagrant and my host? how would i diagnose this?
I understand this is a pretty specific question to the mentioned setup, however i think other new selenium users like myself will find it useful, especially when using codeception and laravel.
Perhaps it has something to do with whitelisting ip's?
Here is the current command.
java -jar vendor/se/selenium-server-standalone/bin/selenium-server-standalonjar -Dwebdriver.chrome.bin="/usr/bin/google-chrome" -Dwebdriver.chrome.driver="vendor/bin/chromedriver" -Dwebdriver.chrome.options="--whitelisted-ips=173.0.82.77,127.0.0.1"
I would guess chrome is running with different profile when launched manually (when it is able to load) and when launched through webdriver. WebDriver launches the browser in a different profile which may be very different than default profile which may include some settings related to proxy/networking.
From https://sites.google.com/a/chromium.org/chromedriver/capabilities
By default, ChromeDriver will create a new temporary profile for each session. At times you may want to set special preferences or just use a custom profile altogether. If the former, you can use the 'chrome.prefs' capability (described later below) to specify preferences that will be applied after Chrome starts. If the latter, you can use the user-data-dir Chrome command-line switch to tell Chrome which profile to use:
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
You can create your own custom profile by just running Chrome (on the command-line or through ChromeDriver) with the user-data-dir switch set to some new directory. If the path doesn't exist, Chrome will create a new profile in the specified location. You can then modify the profile settings as desired, and ChromeDriver can use the profile in the future. Open chrome://version in the browser to see what profile Chrome is using.
Are you sure, that PayPal Sandbox URL should be a local URL, not accessible from outside of your box?
Please provide more details! What web framework/web server do you use? What are libraries you used to get PayPal working.
I think, if the behavior differ when running Selenium, it is an issue completely related to WebDriver settings, or it's work together with Vagrant.
I would like to Chrome Remote Desktop to my GCE instance. Normally, sudo does not ask me for a password on this instance. However, when trying to enable Chrome Remote Desktop, I get a GUI popup that asks for a password and won't take no for an answer. What should I do here?
Screenshot
Thanks!
I have a Google Cloud Platform account that I access from a VirtualBox VM. I am using the Google Compute Engine for a project that I am currently working on, and I had to create a custom image based on the Ubuntu 14.04 image that's available there.
I made changes to the Ubuntu image by ssh'ing into an Ubuntu 14.04 instance, (from my Vbox VM terminal) installing the Matlab compiler runtime, and downloading some other files that I needed. I created the custom image by following the steps according to the documentation.
However, now the changes I made are only available to me when I SSH from my Vbox VM terminal. I need to be able to run a certain matlab program Via startup scripts, how can I make it so that all users using this image have access to the customizations I made? Is there a way I can do this without having to make the edits by ssh'ing from the developers console and redoing all the changes?
EDIT: I don't think I was very clear so Ill give some examples. say my Google account is alexanderlang. When I ssh into an instance created from my custom image from the developers console, bash prompt looks like:
alexanderlang#myinstance $
My Vbox username is alex, and when I ssh into the same instance from my vbox terminal, bash prompt looks like:
alex#myinstance $
alex#myinstance can run matlab programs, but alexanderlang#myinstance cannot. I'm talking about the same instance, created from the same image. I think this might have something to do with the ssh keys for my custom image, but I don't know how to change or remove those keys.
When you connect to your VM instance via ssh by using either Developers Console or gcloud, the user account is dynamically created (if it doesn't already exist) by setting metadata on the VM. The question is: how does each tool choose your username?
When you use Google Developers Console, the only information it knows about you is your Google Account name, so it uses that, e.g., <first-name>_<last-name> or similar.
When you connect to your instance via gcloud, it knows the value of $USER so it uses that instead.
Note that in either case, your account has passwordless sudo access, so if you want to switch from one account to the other, you can run:
sudo su alex
while logged in as alexanderlang and then you have access to all the programs that alex does.
Similarly, you can run:
sudo su alexanderlang
while logged in as alex to do the reverse.
Startup scripts run as root. To run commands as another user, you need to do two things:
change to that username
run commands as that user
sudo su alex will create a new shell and hence ignore the rest of the script (until you manually exit the user shell, which is not what you want).
You can use sudo su alex -c 'command to run' but since what you want to run is a complex script, you need to first save the script to a file, and then run it.
Your options are:
pre-create the shell script to run
dynamically generate it from the startup script
Doing (1) is easy if the script never changes. For frequently-changing scripts (and it sounds like, many dynamically created VMs), you want to use option (2).
Here's how to do this in a startup script:
cat > /tmp/startup-script-helper.sh <<EOF
# ... put the script contents here ...
EOF
sudo su alex -c '/tmp/startup-script-helper.sh'
You can use Packer to create a derived image from a stock GCE VM image. Packer will let you do the following very easily:
boot a GCE VM using an image you specify
run some customization step, e.g., shell script, or Chef/Puppet/etc.
save the resulting image in your Google Cloud Platform project
Then, you can boot any number of new VMs using your newly-created image.
Note that since your VM image will be stored on Google Cloud Storage, you will be charged for the space it uses. Current pricing for Google Cloud Storage standard class is USD $0.026 / GB / month. A typical VM image should be less than 1GB.
You can see a complete example of how I used Packer to build VMs and pre-installed Ambari on it via my GitHub repo.