Selenium WebDriver 连接到 Kameleo 浏览器

Posted

技术标签:

【中文标题】Selenium WebDriver 连接到 Kameleo 浏览器【英文标题】:Selenium WebDriver connection to Kameleo browser 【发布时间】:2021-11-23 00:40:41 【问题描述】:

所以我已经弄清楚了如何开始使用 Python 打开 Kameleo 浏览器配置文件。但是,我找到了启动 chrome 浏览器的会话 ID 和端口。我想我有这个,但我的会话 ID 抛出错误。

我期待 /profiles/guid/start 端点会返回一个带有会话 ID 和端口的 JSON 字典,如果在 profiles/guid/status http 调用下也能得到它也很好。我在 swaggerhub 文档中找不到它。

这是我正在使用的代码

from kameleo.local_api_client.kameleo_local_api_client import KameleoLocalApiClient
from kameleo.local_api_client.builder_for_create_profile import BuilderForCreateProfile

client = KameleoLocalApiClient()
base_profiles = client.search_base_profiles(
    device_type='desktop',
    browser_product='chrome'
)

# Create a new profile with recommended settings
# for browser fingerprinting protection
create_profile_request = BuilderForCreateProfile \
    .for_base_profile(base_profiles[0].id) \
    .set_recommended_defaults() \
    .build()
profile = client.create_profile(body=create_profile_request)

# Start the browser
client.start_profile(profile.id)

【问题讨论】:

【参考方案1】:

根据文档,您不需要手动获取端口和 sessionID,因为您可以通过 Kameleo.CLI.exe 端口连接到浏览器。

如果您继续阅读README,您会发现他们展示了 W3C WebDriver 连接的示例。

# Connect to the running browser instance using WebDriver
options = webdriver.ChromeOptions()
options.add_experimental_option("kameleo:profileId", profile.id)
driver = webdriver.Remote(
    command_executor=f'kameleoBaseUrl/webdriver',
    options=options
)

# Use any WebDriver command to drive the browser
# and enjoy full protection from Selenium detection methods
driver.get('https://google.com')

我也可以在Kameleo's example repository 中找到此代码。

【讨论】:

要使用示例中的webdriver变量,首先运行pip install selenium然后from selenium import webdriver

以上是关于Selenium WebDriver 连接到 Kameleo 浏览器的主要内容,如果未能解决你的问题,请参考以下文章

无法运行 selenium webdriver

远程 Selenium WebDriver 不响应 Cucumber 测试

无法通过 perl 绑定连接 selenium webDriver

selenium与appium怎样联系

Python Selenium 从 CLI 运行 Chromedriver

Webdriver 在 45000 毫秒后无法连接到端口 7055 上的主机 127.0.0.1