Selenium-WebDriver提供WebDriver API,用于控制不同编程语言的浏览器(“语言绑定”)。使用此标记时,还要为正在使用的编程语言添加标记。
如何使用 selenium java 和 UTAM 创建测试自动化?
我正在研究使用 Java 中的 Selenium WebDriver 实现网站导航自动化。我的目标是创建一个测试自动化脚本,可以导航到任何网站并与基于......的元素交互
我在selenium项目中使用chrome浏览器。 这是我正在使用的用户代理字符串: System.setProperty("webdriver.chrome.driver","C:\users\..\chromedriver.exe"); 驱动程序 = 新 ChromeD...
我一直在尝试编写代码来打印网络选项卡下的 Fetch/XHR 选项卡下的预览。图像如下所示- 在这张图片中,我想在控制台上打印......
单击“应用”链接时,它将在 Robot 框架中打开一个新浏览器。如何获取该页面的当前 url?这是代码: 开放服务器 设置浏览器隐式等待 60 前往${服务...
Python 仅在 ChromeDriver 无头模式下请求 Selenium 问题
我想使用请求库和带有 ChromeDriver 的 Selenium 来抓取 Facebook 广告网站(因为我需要在具有 chromedriver 的 pythonanywhere 上运行它)。 所以我这样做: chrome_options = ChromeO...
消息:没有这样的元素:无法找到元素 Selenium Python
我尝试单击按钮,但收到此错误消息: 我尝试单击的元素确实存在于页面上,但我不确定为什么它说该元素不存在: 留言:没有
我是编码新手,我无法理解 Eclipse 中的错误消息, 您能告诉我阅读错误消息的步骤吗? 在此处输入代码juin 30, 2024 6:28:23 P.M. org.openqa.
我编写了一个 Scrapy 蜘蛛,并在其中使用 Selenium 来废弃“devgrossonline.com”中的产品。 它不适用于多个类别 url,但当我只提供一个 url 时它可以工作。任何帮助都是
如果我想正确格式化 MLB 排名结果以下载到 Excel,我将如何修改附加的 Python 脚本 从硒导入网络驱动程序 来自 selenium.webdriver.common.by
使用 docker compose 运行 Selenium——无法创建会话?
我一直在尝试连接到 selenium/chrome-standalone docker 容器,但在创建会话时遇到问题。我不断收到以下错误: 21:02:35.263 警告 [SeleniumSpanExpo...
我有下面的 HTML。 我有下面的 HTML。 <div class="interaction-container"> <button aria-busy="false" aria-disabled="false" aria-label="Selecionar feição" aria- pressed="false" class="button button--text-visible" id="calcite-action-5c67ed3f-5f82-3432-28e7- 5fcb4568c10e-button"> <div aria-hidden="true" class="icon-container"> <calcite-icon class="" aria-hidden="true" icon="list" scale="s"> </calcite-icon><div class="slot-container"> <slot></slot></div></div><div class="text-container text-container--visible">1 de 2</div> </button><slot name="tooltip"></slot><div aria-labelledby="calcite-action-5c67ed3f-5f82-3432-28e7-5fcb4568c10e-button" aria-live="polite" class="indicator-text" id="calcite-action-5c67ed3f-5f82-3432-28e7-5fcb4568c10e-indicator" role="region"></div></div> 我希望机器人能够简单地找到此按钮标签 当我在 Chrome DevTools 中检查它时,这行代码出现在这些标签上方。 #shadow-root (open) <div class="interaction-container"> <button aria-busy="false" aria-disabled="false" aria-label="Selecionar feição" aria- pressed="false" <!--..Rest of the HTML ommited.--> 我向人工智能寻求帮助,它告诉我: 你发现的是一个 Shadow DOM 元素。 Shadow DOM 是一种封装组件样式和结构的技术,确保其不受主文档样式和结构的影响。这可能会使测试自动化变得困难,因为无法使用传统的 Selenium 选择器直接访问 Shadow DOM 中的元素。 要与 Shadow DOM 中的元素交互,首先需要访问 Shadow 宿主(包含 Shadow DOM 的元素),然后访问 Shadow 根。不幸的是,Selenium 本身并不提供对访问 Shadow DOM 的直接支持,但可以使用 JavaScript 来解决这个问题。 这里是如何使用 Selenium 和 JavaScript 访问 Shadow DOM 中的元素并与之交互的示例。 它尝试解决以下问题: 我们添加了 Expand_shadow_element 函数,该函数使用 JavaScript 来访问元素的影子根。我们使用这个函数来访问 Shadow DOM 中的元素。 找到 Shadow Host:我们找到 Shadow DOM 宿主元素(包含 Shadow DOM 的元素)并展开 Shadow 根。 查找按钮:我们在影子根中使用 find_element 找到所需的按钮,然后单击它。 但是没有成功。 这是我的Python代码。 下面是不起作用的部分,需要解决。 # Access the Shadow DOM and try to find the "Select feature" button try: print("Waiting for the 'Select feature' button to appear...") shadow_host = WebDriverWait(driver, 30).until( EC.presence_of_element_located((By.CLASS_NAME, "interaction-container")) ) 这是完整的代码: from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.action_chains import ActionChains import time # Chrome settings chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--ignore-certificate-errors') chrome_options.add_argument('--ignore-ssl-errors') chrome_options.add_argument('--log-level=3') chrome_options.add_argument('--disable-gpu') chrome_options.add_argument('--start-fullscreen') chrome_options.add_argument('--disable-blink-features=AutomationControlled') chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36") # Initialize ChromeDriver service = Service(ChromeDriverManager().install()) driver = webdriver.Chrome(service=service, options=chrome_options) # Open the website driver.get("https://experience.arcgis.com/experience/3f67d5e82dc64d1589714d5499196d4f/page/Page/") driver.implicitly_wait(10) # Move the mouse to simulate human interaction action = ActionChains(driver) action.move_by_offset(100, 100).perform() # Function to access the Shadow DOM def expand_shadow_element(driver, element): shadow_root = driver.execute_script('return arguments[0].shadowRoot', element) return shadow_root # Try to find and click the "OK" button in the modal try: ok_button = WebDriverWait(driver, 20).until( EC.element_to_be_clickable((By.XPATH, "//a[@id='jimu-link-app-1']/span[contains(text(), 'OK')]")) ) ok_button.click() print("Button 'OK' clicked successfully!") except Exception as e: print(f"Error clicking the 'OK' button: {e}") # Try to find and click the search button try: search_button = WebDriverWait(driver, 20).until( EC.element_to_be_clickable((By.CLASS_NAME, "exbmap-ui-tool.esri-widget--button")) ) search_button.click() print("Search button clicked successfully!") except Exception as e: print(f"Error clicking the search button: {e}") # Wait for the search input field and fill it with the address try: time.sleep(5) search_input = WebDriverWait(driver, 20).until( EC.element_to_be_clickable((By.XPATH, "//input[@class='esri-input esri-search__input']")) ) search_input.send_keys("Vineyard Golf Club, 100 Club House Ln, Edgartown, MA, 02539, USA") search_input.send_keys(u'\ue007') # Press Enter after typing the address print("Address filled successfully!") except Exception as e: print(f"Error filling the address: {e}") # Wait to ensure the search results appear on the map time.sleep(10) # Try to find the canvas and trigger a click on it try: canvas = WebDriverWait(driver, 20).until( EC.presence_of_element_located((By.XPATH, "//div[@class='esri-view-surface esri-view-surface--touch-none']//canvas")) ) action.move_to_element(canvas).click().perform() print("Canvas clicked successfully!") except Exception as e: print(f"Error clicking the canvas: {e}") # Wait for the modal to appear and click the "Close" button using a different CSS selector try: close_button = WebDriverWait(driver, 30).until( EC.element_to_be_clickable((By.XPATH, "//button[contains(@class, 'button') and @aria-label]")) ) close_button.click() print("Close button clicked successfully!") except Exception as e: print(f"Error clicking the close button: {e}") # Wait a few seconds and click the canvas again time.sleep(5) # Check if the modal has closed before clicking the canvas again try: canvas = WebDriverWait(driver, 20).until( EC.presence_of_element_located((By.XPATH, "//div[@class='esri-view-surface esri-view-surface--touch-none']//canvas")) ) action.move_to_element(canvas).click().perform() print("Canvas clicked again successfully!") except Exception as e: print(f"Error clicking the canvas again: {e}") # Access the Shadow DOM and try to find the "Select feature" button try: print("Waiting for the 'Select feature' button to appear...") shadow_host = WebDriverWait(driver, 30).until( EC.presence_of_element_located((By.CLASS_NAME, "interaction-container")) ) shadow_root = expand_shadow_element(driver, shadow_host) select_feature_button = shadow_root.find_element(By.CSS_SELECTOR, "button.button--text-visible") print("Button 'Select feature' found. Trying to click...") action.move_to_element(select_feature_button).perform() time.sleep(1) # Short wait to simulate human interaction action.click(select_feature_button).perform() print("Button 'Select feature' clicked successfully!") except Exception as e: print(f"Error clicking the 'Select feature' button: {e}") # Wait 4 seconds for visualization time.sleep(4) # Close the browser driver.quit() 这里是CMD返回: DevTools listening on ws://127.0.0.1:63125/devtools/browser/997d84a3-f9ec-455c-9125-213ab1d17e52 Button 'OK' clicked successfully! Search button clicked successfully! Address filled in successfully! Canvas clicked successfully! Button 'Close' clicked successfully! Canvas clicked again successfully! Waiting for the 'Select feature' button to appear... Error clicking the 'Select feature' button: Message: Stacktrace: GetHandleVerifier [0x00E0C1C3+27395] (No symbol) [0x00DA3DC4] (No symbol) [0x00CA1B7F] (No symbol) [0x00CE2C65] (No symbol) [0x00CE2D3B] (No symbol) [0x00D1EC82] (No symbol) [0x00D039E4] (No symbol) [0x00D1CB24] (No symbol) [0x00D03736] (No symbol) [0x00CD7541] (No symbol) [0x00CD80BD] GetHandleVerifier [0x010C3A93+2876371] GetHandleVerifier [0x01117F5D+3221661] GetHandleVerifier [0x00E8D634+556916] GetHandleVerifier [0x00E9474C+585868] (No symbol) [0x00DACE04] (No symbol) [0x00DA9818] (No symbol) [0x00DA99B7] (No symbol) [0x00D9BF0E] BaseThreadInitThunk [0x778CFCC9+25] RtlGetAppContainerNamedObjectPath [0x77CE7C5E+286] RtlGetAppContainerNamedObjectPath [0x77CE7C2E+238] 我通过输入下面的代码解决了这个问题: # Access the Shadow DOM and try to find the "Select feature" button try: print("Waiting for the 'Select feature' button to appear...") calcite_action = WebDriverWait(driver, 30).until( EC.presence_of_element_located((By.CSS_SELECTOR, "calcite-action[title='Selecionar feição']")) ) shadow_root = expand_shadow_element(driver, calcite_action) select_feature_button = shadow_root.find_element(By.CSS_SELECTOR, "button.button--text-visible") print("Button 'Select feature' found. Attempting to click...") action.move_to_element(select_feature_button).perform() time.sleep(1) # Small wait to simulate human interaction action.click(select_feature_button).perform() print("Button 'Select feature' clicked successfully!") except Exception as e: print(f"Error clicking the 'Select feature' button: { e}")
我正在尝试使用 Selenium 单击登录按钮,但不知何故它不起作用。我检查了其他存储库以及以前的线程,但找不到解决方案。这是我的代码: 导入时间 来自
我正在用Python为Booking.com这样的网站编写selenium的测试选择器。例如,我必须自动从按钮列表中选择一个按钮。按钮的格式如下...
我使用 python 的 Selenium seesion 无法单击按钮
嘿,我是硒的新手,我正在尝试搜索我的 linkedin 个人资料,让我进入该个人资料并允许我单击登录按钮,这是代码(其中一部分来自 chatg. ..
大家好,我想通过国家找到该国首都的X路径。请帮我找到X路径。我使用了独立和依赖的 X 路径,但找不到它。
大家好! 我有这个网页(https://goldapple.ru/),我想在其中解析一些有关化妆品的数据。但是,当我打开网页时,出现弹出按钮,我想点击左侧...
我对编码世界非常陌生,刚刚学习Python并且热衷于selenium。 我正在尝试单击网页中的链接,但是我只想单击与我的日期和时间匹配的特定链接...
新安装的 Ubuntu 24+ For Python 3.12 上的 Selenium 将无法运行
在过去的一周里,我一直在努力让 Selenium 在我刚刚安装了 Ubuntu 的笔记本电脑上正常运行,只是为了处理个人项目。我没有找到任何好的东西
Appium 错误:无法启动新会话。可能的原因是远程服务器地址无效或浏览器启动失败
我创建了一个用于编写移动自动测试的appium项目,appium服务器运行在: 0.0.0.0:4000 Apium Inspector 成功连接到该地址,但是当我尝试通过
当我运行代码时,它会转到 Twitter 并从文本列表中发布一条推文,但之后它使用列表中相同的第一个推文 (test1) 并用它创建一条新推文 从硒导入 webdr...