标签: browser-automation

在 Puppeteer 中如何从默认配置文件切换到 chrome 窗口到所需的配置文件

我的要求是在新配置文件上测试 chrome 扩展。

我为 Chromium args[--user-data-dir, --profile-directory]引用了https://peter.sh/experiments/chromium-command-line-switches/

浏览器启动后,会打开 2 个 chrome 窗口。一个具有给定的配置文件和扩展名,另一个具有默认配置文件和给定的扩展名。此外,焦点位于具有默认配置文件的窗口上。所以所有的动作都发生在它上面。

我原以为只有 1 个浏览器窗口会以所需的配置文件和扩展名打开。

我试图将焦点切换到所需的窗口,但 browser.BrowserContexts().length 为 1,这是具有默认配置文件的浏览器。另外 browser.targets() 显示只有 1 个目标类型为浏览器。

我的环境:
1. Puppeteer 版本:6.9.0
2. 平台/操作系统版本:Windows 10 Pro 版本 1803
3. URL(如果适用):
4. Node.js 版本:10.16.3

我的尝试:
一。从 path\to\my\project\node_modules\puppeteer.local-chromium\win64-674921\chrome-win\chrome.exe 打开 chrome.exe
b. 单击个人资料图标并打开“管理人员”对话框。
C。添加新人(个人资料)
d. 打开 chrome://version 并记下 Profile Path 并关闭浏览器。
e. 创建example1.js、example2.js并使用节点example1.js、节点example2.js执行。下面给出了两个示例的代码。

例子1.js

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({headless:false, args:['--disable-extensions-except=\\path\\to\\my\\extension',
'--load-extension=\\path\\to\\my\\extension',
'--user-data-dir=%userprofile%\\AppData\\Local\\Chromium\\User Data',
'--profile-directory=Profile 1'
]});

  const page = …
Run Code Online (Sandbox Code Playgroud)

javascript automated-tests browser-automation chromium puppeteer

8
推荐指数
1
解决办法
8027
查看次数

How to automatically toggle the Dark Reader Chrome plugin?

Question

How can we automatically toggle Dark Mode at predetermined times?

Background

Every day, around 5 PM, I switch on the dark mode of the Dark Reader Chrome extension. I toggle it off again the next morning to get more bright light in the morning.

As of now, I have remind myself everyday to hit the <Alt>+<Shift>+<D>-shortcut that I have configured in Google Chrome (chrome://extensions/shortcuts): 在此输入图像描述

browser google-chrome browser-automation google-chrome-extension darkmode

8
推荐指数
1
解决办法
2768
查看次数

测试是否使用Watir-Webdriver打开一个新窗口

我正在使用Watir-webdriver,我想知道是否有一个好方法来检查是否有新窗口打开.我已经google了一下,虽然感觉应该有一个简单的答案,但找不到任何东西.

我有一个打印机友好的链接,我想测试链接在新窗口或选项卡中打开,我想用ie,firefox,chrome和safari进行测试,如果可能的话.

谢谢!

ruby browser-automation watir watir-webdriver

7
推荐指数
1
解决办法
3794
查看次数

在IE 10中使用selenium元素单击无法正常运行

我试图在IE 10中使用selenium自动化网站.该网站打开正常但是当我想点击一个元素(按钮)时,它找到元素并点击它,但是元素状态(按钮名称改变)需要要改变不会改变.

这是我的代码.

   File file = new File("D:/IEDriverServer.exe");
   System.setProperty("webdriver.ie.driver", file.getAbsolutePath() );

   DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
   capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,
   true); 

   WebDriver driver = new InternetExplorerDriver(capabilities);
   driver.get("http://www.midomi.com");
   driver.findElement(By.id("searchMovielanding")).click();
Run Code Online (Sandbox Code Playgroud)

我试过两台机器.在一台机器上代码正常运行而在另一台机器上没有看到click事件改变元素状态.我检查了网页上的元素,然后发现它不知道为什么它没有在一台机器上正确点击它.

  if(driver.findElements(By.id("searchMovielanding")).size() != 0) {
 System.out.println("Element Found");
 }
Run Code Online (Sandbox Code Playgroud)

任何帮助解决这个问题.

selenium internet-explorer browser-automation selenium-webdriver

7
推荐指数
1
解决办法
2万
查看次数

如何使用katalon studio上传文件/照片?

我正在尝试使用katalon studio上传文件进行自动化测试(web测试.点击'浏览'按钮后,Windows弹出窗口打开,但我无法选择照片或转到特定路径.我找到了一个命令WebUI.UploadFile( )但我认为我没有正确使用它.

如果有人有这样的事情,请分享您的经验.我怎么能在katalon做到这一点?

testing automation automated-tests browser-automation katalon-studio

7
推荐指数
1
解决办法
6087
查看次数

如何在操纵up中单击具有特定内容的链接?

如果我的页面中有一些内容,例如:

<a>Hi!</a>
Run Code Online (Sandbox Code Playgroud)

如何使用Google的Puppeteer自动点击该元素?

我需要能够仅根据其内容而不是id,class或attribute来选择它。

$('a:contains("Hi!")')我可以利用这种东西来选择此元素吗?

如何使用https://github.com/GoogleChrome/puppeteer做到这一点

谢谢

browser-automation css-selectors puppeteer

7
推荐指数
2
解决办法
7044
查看次数

如何解决selenium firefox浏览器被远程控制?

我在 Firefox 82.0.3 (64) 中使用 selenium

该代码工作正常,但问题是它说浏览器处于远程控制之下。

有什么办法可以解决或者有其他办法绕过它。

我实际上想要用selenium做的是每次执行代码时使用我定义的新代理打开一个新的firefox实例。

提前致谢

这是我的代码片段。

import webbrowser
import time
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager 
from webdriver_manager.firefox import GeckoDriverManager
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

fbgroups = open("all.txt").readlines()
whitelist = open("ntp.txt").readlines()
llf = open('last.txt',"r")

print("Total groups: " + str(len(fbgroups)))
print("Whitelisted: " + str(len(whitelist)))
print("Last: " + str(llf.read()))

# var = int(input('\nStart from: '), 10)
var = 1
myProxy = "us.smartproxy.com:18000"
PROXY_HOST, PROXY_PORT = myProxy.split(":")
while True:
    for a in range (len(fbgroups)-var,0, -1):
        print("Line No: …
Run Code Online (Sandbox Code Playgroud)

python selenium browser-automation selenium-webdriver geckodriver

7
推荐指数
1
解决办法
9128
查看次数

使用 VBA 自动化 Edge 浏览器,无需下载 Selenium

我有考虑 IE 编写的自动化工具。现在,我想通过将“Microsoft Edge”视为默认浏览器来重新编写这些相同的工具。除了下载作为 Selenium 包一部分的 WebDriver 之外,我找不到其他方法。

有人可以帮助我在不下载/安装其他软件或网络驱动程序的情况下自动化 Edge 浏览器吗?

谢谢,坎蒂

selenium browser-automation microsoft-edge

7
推荐指数
2
解决办法
4万
查看次数

重用之前打开的 selenium 窗口

我一直在使用 Selenium Python 库测试各种自动化任务。在这个过程中我遇到了一个非常严重的问题。这是由于网络连接不良造成的延迟。所有任务的起始步骤都是相同的,即 - 打开浏览器 - 转到网站 - 登录 - 登录后打开特定链接

这些任务需要很长时间,因此我希望找到一种方法,可以重用已经打开的会话并继续在该窗口上进行测试,而不是每次运行脚本时打开新的浏览器窗口。

这是我迄今为止测试过的:

原始文件示例:

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications" : 2}
chrome_options.add_experimental_option("prefs",prefs)

driver = webdriver.Chrome(r'C:\testDir\chromedriver_win32\chromedriver.exe', chrome_options=chrome_options)

url = driver.command_executor._url      
session_id = driver.session_id          

print("URL:",url,"SESSION ID:",session_id)

driver.get('http://www.facebook.com')

username = "---"
password = "---"

driver.find_element_by_name('email').send_keys(username)
driver.find_element_by_name('pass').send_keys(password)
driver.find_element_by_name('login').click()    
# time.sleep(2)
driver.maximize_window()
time.sleep(2)
driver.find_elements_by_name('q').send_keys('Ayush Mandowara')  
# element = wait.until(EC.presence_of_element_located((By.xpath, '//input[@placeholder="Search"]'))
driver.find_element_by_xpath('//input[@placeholder="Search"]').send_keys('Ayush Mandowara' + Keys.RETURN)
time.sleep(4)

driver.find_element_by_xpath('//div[contains(text(), "Ayush Mandowara")]').click()
time.sleep(3)
driver.find_element_by_class_name('coverBorder').click()
time.sleep(2)
Run Code Online (Sandbox Code Playgroud)

连接文件:

from connectingToPrev import url, session_id    

driver = …
Run Code Online (Sandbox Code Playgroud)

selenium browser-automation python-3.x selenium-chromedriver selenium-webdriver

6
推荐指数
0
解决办法
3962
查看次数

使用 Playwright 基于 Azure AD 的 SSO

我们如何测试具有基于 Azure AD 的身份验证的 SPA?当用户打开应用程序时,用户首先被发送到 login.microsoftonline.com,并在输入用户电子邮件后,页面重定向回应用程序主页。在这种情况下,我们如何使用 Playwright 实现自动化?

automated-tests browser-automation puppeteer playwright

6
推荐指数
1
解决办法
2079
查看次数