selenium-webdriver 相关问题

Selenium-WebDriver提供WebDriver API,用于控制不同编程语言的浏览器(“语言绑定”)。使用此标记时,还要为正在使用的编程语言添加标记。

Selenium 中带有文本单元的 NoSuchElementException

代码: 驱动程序 = webdriver.Chrome() driver.get("https://commercialisti.it/iscritti") driver.implicitly_wait(10) casella_testo = driver.find_element("id", "Cap")

回答 1 投票 0

使用 Selenium 从页面获取所有 H2 元素

根据我之前的两个问题:Selenium 是否有类似 BeautifulSoup 的 Find All 的功能? 我需要在像这样的页面中获取H2标签的所有内容。 JeffC 带来的伟大代码...

回答 1 投票 0

Selenium python 更改默认下载目录,无需打开窗口弹出窗口

我想使用 Selenium 更改默认下载目录。我还想避免打开 Windows 对话框来选择名称,因为我无法与 Selenium 交互。如果我离开...

回答 1 投票 0

Android Appium 长按在 2.5.1 上不起作用

在我运行 2.0.1 的本地 appium 上,这是有效的: WebElement 元素 = assertElement(new AppiumBy.ByAndroidUIAutomator("new UiSelector().resourceId(\"" + resourceId + "\")&q...

回答 1 投票 0

Chrome 扩展渲染的 Selenium 无头模式问题

在无头模式下使用 Selenium 时遇到问题,Chrome 扩展页面无法呈现,导致屏幕截图为空白。禁用无头模式解决了该问题。寻求渲染解决方案

回答 1 投票 0

如何让我的 python selenium 脚本在最小化时工作?

我有一个Python脚本,可以读取包含姓名和邮政编码的input_names.csv。使用此信息,程序用 selenium 打开 chrome,将其最小化,然后将信息输入到 White

回答 1 投票 0

尝试单击可手动单击的元素,但无法在 C# 中进行自动化测试

我正在尝试使用 Selenium 和 Appium 对 C# 中的移动应用程序进行自动化测试。这个应用程序是使用 Flutter 制作的,有一个部分我必须选择购买日期......

回答 2 投票 0

Pandas read_html 自动将任意一列转换为 str

我一直在尝试从网站上抓取表格,但由于某种原因,Pandas 会自动将每一列转换为字符串,因此某些值变得完全无用。例如,0.62 因为...

回答 1 投票 0

尝试使用 Selenium(使用 Python)访问网站时出现空白导航下拉列表

我正在尝试自动化一个流程,在该流程中我可以访问网站,将鼠标悬停在菜单导航栏上,然后单击下拉列表中的选项来访问该页面。 我正在使用 Selenium(使用 python...

回答 1 投票 0

Selenium 与 Appium:尝试单击可手动单击的元素,但无法在 C# 中进行自动化测试

我正在尝试使用 Selenium 和 Appium 对 C# 中的移动应用程序进行自动化测试。这个应用程序是使用 Flutter 制作的,有一个部分我必须选择购买日期......

回答 1 投票 0

如何在shadow-root元素内部获取shadow-root元素

我正在尝试使用 firefox 和 python 中的 selenium 获取位于多个影子根元素内的按钮元素。知道我怎样才能得到它吗? 在此输入图像描述 我试过这个,但它

回答 1 投票 0

Selenium点击被拦截

我需要一些关于 html 读取/解释的帮助。 我这里有这个代码: 我需要一些关于 html 读取/解释的帮助。 我这里有这个代码: <div class="action-drawer" style="overflow: hidden;"> <div> <div class="profile-box"> <div role="img" class=""> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" width="24" height="24" viewBox="0 0 24 24" xml:space="preserve" style="width: 50px; height: 50px;"> <path d="M14 12.7c-0.6 0.3-1.2 0.5-2 0.5 -0.7 0-1.3-0.2-1.9-0.5 -2.5 2-5.3 5.5-4.7 6.9 0.6 1.2 12.5 1.2 13 0C19.1 18.4 16.5 14.6 14 12.7zM8.2 9.7c0.5 1.7 2 3 3.8 3 1.8 0 3.3-1.2 3.8-3H8.2zM16.6 9.2c0 0 0-0.9-0.3-1.2 0 0-0.1 0-0.2-0.1 -0.1 0-0.3-0.1-0.3-0.3 0-0.3-0.1-2.5-2.4-3.3 0 0-0.3 0.3-0.6 2.7l0-3.2c0 0 0-0.2-0.1-0.3C12.5 3.5 12.5 3.5 12.4 3.5c-0.2 0-0.8 0-0.8 0s-0.1 0-0.1 0c-0.1 0-0.1 0.1-0.1 0.3 0 0.4 0 3.2 0 3.2s-0.4-2.4-0.7-2.7c0 0-2.3 0.6-2.4 3.2C8.3 7.8 8.2 7.8 8 7.9c-0.1 0-0.2 0.1-0.3 0.2C7.4 8.4 7.4 9.2 7.4 9.2h0.7 7.6H16.6z" fill="#808285"></path> </svg> </div> <div class="label info-box">Admin </div> </div> <div role="menu" class="drawer-menu" aria-level="1" aria-posinset="1" style="z-index: 651; width: 320px;"> <div role="menuitem" class="quicklinks-database state-active" id="ACTION_DATABASE"> <div role="img" class="icon"> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" width="24" height="24" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <path fill="#2196F3" d="M12 3.5c-3.6 0-6.5 1-6.5 2.2v3.3c0 1.2 2.9 2.2 6.5 2.2s6.5-1 6.5-2.2V5.7C18.5 4.5 15.6 3.5 12 3.5zM12 7.5c-2.9 0-5.2-0.8-5.2-1.8 0-1 2.3-1.8 5.2-1.8 2.9 0 5.2 0.8 5.2 1.8C17.2 6.7 14.9 7.5 12 7.5zM12 12.2c-3.4 0-6.2-0.9-6.5-2.1C5.5 10.2 5.5 10.3 5.5 10.3v3.3c0 1.2 2.9 2.2 6.5 2.2s6.5-1 6.5-2.2v-3.3c0-0.1 0-0.1 0-0.2C18.2 11.3 15.4 12.2 12 12.2zM12 16.9c-3.4 0-6.2-0.9-6.5-2.1C5.5 14.9 5.5 14.9 5.5 15v3.3c0 1.2 2.9 2.2 6.5 2.2s6.5-1 6.5-2.2v-3.3c0-0.1 0-0.1 0-0.2C18.2 16 15.4 16.9 12 16.9z"></path> </svg> </div> <div class="label">Database Manager</div> </div> <div role="menuitem" id="ACTION_SETTINGS" class=""> <div role="img" class="icon"> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" width="24" height="24" viewBox="0 0 24 24" xml:space="preserve"> <path d="M19.1 12c0-0.4 0-0.8-0.1-1.2l1.5-1.4c-0.2-0.6-0.4-1.1-0.7-1.6l-2 0.1c-0.5-0.7-1-1.2-1.7-1.7l0.1-2c-0.5-0.3-1.1-0.5-1.6-0.7L13.2 5c-0.4-0.1-0.8-0.1-1.2-0.1 -0.4 0-0.7 0-1 0.1 -0.1 0-0.1 0-0.2 0l-0.7-0.8L9.4 3.5c-0.1 0-0.1 0-0.2 0.1 -0.5 0.2-1 0.4-1.5 0.6l0.1 2c-0.7 0.5-1.2 1-1.7 1.7l-2-0.1C3.9 8.3 3.7 8.9 3.5 9.4L5 10.8c-0.1 0.4-0.1 0.8-0.1 1.2s0 0.8 0.1 1.2l-1.5 1.4c0.2 0.6 0.4 1.1 0.7 1.6l2-0.1c0.5 0.7 1 1.2 1.7 1.7l-0.1 2C8.2 20 8.6 20.2 9 20.3c0.1 0.1 0.3 0.1 0.4 0.2l0.2-0.2 1.2-1.3c0.4 0.1 0.8 0.1 1.2 0.1 0.4 0 0.8 0 1.2-0.1l0.8 0.9 0.5 0.6c0.6-0.2 1.1-0.4 1.6-0.7l0-0.2 -0.1-1.8c0.7-0.5 1.2-1 1.7-1.7l1.6 0.1 0.5 0c0.3-0.5 0.5-1.1 0.7-1.6L19 13.2C19.1 12.8 19.1 12.4 19.1 12zM12 17.3c-2.9 0-5.3-2.4-5.3-5.3 0-2.9 2.4-5.3 5.3-5.3 2.9 0 5.3 2.4 5.3 5.3C17.3 14.9 14.9 17.3 12 17.3z" fill="#2196F3"></path> </svg> </div> <div class="label">Settings</div> </div> <div role="menuitem" id="ACTION_UPDATE_SOFTWARE" class=""> <div role="img" class="icon"> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" width="24" height="24" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <path fill="#2196F3" d="M10.7 20.5l0.9-1.1c-2.5-0.1-4.8-1.4-6.1-3.6 -1.5-2.6-1.3-6 0.6-8.4 0.1-0.2 0.4-0.2 0.6-0.1 0.2 0.1 0.2 0.4 0.1 0.6 -1.7 2.1-1.9 5.1-0.5 7.4 1.1 1.9 3 3 5.1 3.2l-1-0.8 1.2-0.1 1.5 1.3 -1.3 1.5L10.7 20.5zM17.8 16.6c1.9-2.4 2.2-5.7 0.6-8.4 -1.3-2.2-3.6-3.5-6.1-3.6L13.3 3.5l-1.2 0.1 -1.3 1.5 1.5 1.3 1.2-0.1 -1-0.8c2.1 0.2 4 1.4 5.1 3.2 1.4 2.3 1.2 5.3-0.5 7.4 -0.1 0.1-0.1 0.3 0 0.5 0 0 0.1 0.1 0.1 0.1C17.4 16.8 17.6 16.8 17.8 16.6z"></path> </svg> </div> <div class="label">Update Software</div> </div> <div role="menuitem" id="ACTION_USER_MANAGER" class=""> <div role="img" class="icon"> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" width="24" height="24" viewBox="0 0 24 24" xml:space="preserve"> <path fill="#9E9E9E" d="M16.3 19.6c-0.6 1.2-11.8 1.2-12.3 0 -0.6-1.4 2-4.9 4.4-6.9 0.5 0.3 1.1 0.5 1.8 0.5 0.7 0 1.3-0.2 1.9-0.6C14.4 14.6 16.9 18.4 16.3 19.6zM10.2 4.5c-2.1 0-3.8 1.8-3.8 4s1.7 4 3.8 4c2.1 0 3.8-1.8 3.8-4S12.2 4.5 10.2 4.5zM15.7 11.6c-0.6 0.3-1.2 0.6-1.9 0.6 -0.1 0-0.2 0-0.3 0 2.3 2 4.8 5.8 4.2 6.9 0 0.1-0.2 0.2-0.3 0.3 1.4-0.1 2.4-0.4 2.6-0.7C20.6 17.4 18.1 13.6 15.7 11.6zM15.4 8c0 1.5-0.8 2.8-1.9 3.5 0.1 0 0.3 0 0.4 0 2.1 0 3.8-1.8 3.8-4 0-2.2-1.7-4-3.8-4 -0.7 0-1.3 0.2-1.8 0.5C13.9 4.3 15.4 5.9 15.4 8z"></path> </svg> </div> <div class="label">User Management</div> </div> <div role="menuitem" class="action-logout" id="ACTION_LOGOUT"> <div role="img" class="icon"> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" width="24" height="24" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <path fill="#7F8C8D" d="M14.8 5v1.3c1.8 1 3.1 3.1 3.1 5.4 0 3.4-2.6 6.1-5.9 6.1 -3.2 0-5.9-2.7-5.9-6.1 0-2.3 1.2-4.3 3.1-5.4V5C6.7 6.1 5 8.7 5 11.7c0 4 3.1 7.3 7 7.3 3.9 0 7-3.3 7-7.3C19 8.7 17.3 6.1 14.8 5zM11.6 5h1v8h-1V5z"></path> </svg> </div> <div class="label">Logout</div> </div> </div> </div> </div> 使用 python-selenium 我想单击一个名为 Database Manager 的侧栏 正如我所说,我不是那么专家,所以我尝试了这段代码: driver.find_element(By.XPATH,"//*[@class='drawer-menu']//child::div[1]//div[text()='Database Manager']").click() 但这让我陷入了错误 Message: element click intercepted: Element <div class="label">...</div> is not clickable at point (111, 102). Other element would receive the click: <div role="heading" aria-level="1" class="vertical">...</div> 谁能解释一下我的代码有什么问题吗? is not clickable at point (111, 102). Other element would receive the click: <div role="heading" aria-level="1" class="vertical">...</div> 正如例外情况所示,selenium 无法单击所需的元素(Database Manager),因为某些其他元素覆盖在所需的元素上。如果无法访问实际页面,我无法告诉您如何准确地摆脱覆盖元素。但您可以尝试以下几件事: 不确定您是否已最大化窗口,有时最大化窗口不会造成任何阻碍。如果您还没有尝试过,请在您的代码中尝试一下。 driver.maximize_window() 使用操作链与菜单和子菜单进行交互。尝试使用 ActionChain 的 click() 方法,而不是 Selenium 的 move_to_element 方法。示例代码如下: from selenium.webdriver import ActionChains # Create actions object actions = ActionChains(driver) # Store the desired element into a variable called element element = driver.find_element(By.XPATH,"//*[@class='drawer-menu']//child::div[1]//div[text()='Database Manager']") # Click on element using ActionsChains actions.move_to_element(element).perform() 使用显式等待。示例代码如下: from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC ... # Create wait object with 10s wait time wait = WebDriverWait(driver, 10) # Below line will wait for 10s until the state of the desired element is clickable wait.until(EC.element_to_be_clickable((By.XPATH, "//*[@class='drawer-menu']//child::div[1]//div[text()='Database Manager']"))).click() 使用 Javascript 来执行点击,而不是 Selenium 的 click()。示例代码如下: import time ... time.sleep(5) element = driver.find_element(By.XPATH,"//*[@class='drawer-menu']//child::div[1]//div[text()='Database Manager']") driver.execute_script("arguments[0].click();", element)

回答 1 投票 0

使用 Selenium 获取元素的绝对引用

我是 Selenium 的新手。我正在创建第一个示例,我访问一个网站 (https://mediamarkt.es),然后搜索特定产品。我的代码能够获取搜索 ID 并放置产品

回答 1 投票 0

Cucumber jvm 7 和 maven:从命令行运行测试

我已经使用 Selenium 和 Cucumber 设置了一个 Java 项目,用于端到端测试。由于我还使用并非总是那么稳定的 IDE IntelliJ,因此我依赖于使用 Maven f 运行测试的选项...

回答 1 投票 0

修改selenium中的元素

我不熟悉 HTML,但我想在 python 中使用 selenium 将值更改为矩阵。 页面的html代码如下: 我不熟悉 HTML,但我想在 python 中使用 selenium 将值更改为矩阵。 页面的html代码如下: <div role="grid" class="table-data" style="overflow: auto; height: 841px; width: 1024px;"><div><div role="rowgroup" class="grid-header" style="z-index: 1; width: 1685.22px;"><div role="row" class=""><div role="gridcell" class="checkbox"><div role="checkbox" aria-checked="false"><div role="img" class="control-element" aria-labelledby="ogf8"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" width="24" height="24" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"><path fill="#95A5A6" d="M19.5 4.4L8.8 20.5 4.5 14l1-0.9 3.3 5L18.5 3.5 19.5 4.4z"></path></svg></div><div class="label" id="ogf8" aria-hidden="true" style="display: none;"></div></div></div><div role="gridcell" class="">key</div><div role="gridcell" class="">hmi_id</div></div></div><div role="rowgroup" class="grid-content" style="width: 1685.22px;"><div role="row" class=""><div role="gridcell" class="checkbox"><div role="checkbox" aria-checked="false"><div role="img" class="control-element" aria-labelledby="1sev"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" width="24" height="24" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"><path fill="#95A5A6" d="M19.5 4.4L8.8 20.5 4.5 14l1-0.9 3.3 5L18.5 3.5 19.5 4.4z"></path></svg></div><div class="label" id="1sev" aria-hidden="true" style="display: none;"></div></div></div><div role="gridcell" class="editable"><input autocomplete="off"></div><div role="gridcell" class="editable"><input autocomplete="off"></div></div><div role="row" class=""><div role="gridcell" class="checkbox"><div role="checkbox" aria-checked="false"><div role="img" class="control-element" aria-labelledby="mnzd"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" width="24" height="24" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"><path fill="#95A5A6" d="M19.5 4.4L8.8 20.5 4.5 14l1-0.9 3.3 5L18.5 3.5 19.5 4.4z"></path></svg></div><div class="label" id="mnzd" aria-hidden="true" style="display: none;"></div></div></div><div role="gridcell" class="editable"><input autocomplete="off"></div><div role="gridcell" class="editable"><input autocomplete="off"></div></div><div role="row" class=""><div role="gridcell" class="checkbox"><div role="checkbox" aria-checked="false"><div role="img" class="control-element" aria-labelledby="m1c6"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" width="24" height="24" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"><path fill="#95A5A6" d="M19.5 4.4L8.8 20.5 4.5 14l1-0.9 3.3 5L18.5 3.5 19.5 4.4z"></path></svg></div><div class="label" id="m1c6" aria-hidden="true" style="display: none;"></div></div></div><div role="gridcell" class="editable"><input autocomplete="off"></div><div role="gridcell" class="editable"><input autocomplete="off"></div></div><div role="row" class=""><div role="gridcell" class="checkbox"><div role="checkbox" aria-checked="false"><div role="img" class="control-element" aria-labelledby="00mx"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" width="24" height="24" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"><path fill="#95A5A6" d="M19.5 4.4L8.8 20.5 4.5 14l1-0.9 3.3 5L18.5 3.5 19.5 4.4z"></path></svg></div><div class="label" id="00mx" aria-hidden="true" style="display: none;"></div></div></div><div role="gridcell" class="editable"><input autocomplete="off"></div><div role="gridcell" class="editable"><input autocomplete="off"></div></div><div role="row" class=""><div role="gridcell" class="checkbox"><div role="checkbox" aria-checked="false"><div role="img" class="control-element" aria-labelledby="fnnf"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" width="24" height="24" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"><path fill="#95A5A6" d="M19.5 4.4L8.8 20.5 4.5 14l1-0.9 3.3 5L18.5 3.5 19.5 4.4z"></path></svg></div><div class="label" id="fnnf" aria-hidden="true" style="display: none;"></div></div></div><div role="gridcell" class="editable"><input autocomplete="off"></div><div role="gridcell" class="editable"><input autocomplete="off"></div></div><div role="row" class=""><div role="gridcell" class="checkbox"><div role="checkbox" aria-checked="false"><div role="img" class="control-element" aria-labelledby="9e3g"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" width="24" height="24" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"><path fill="#95A5A6" d="M19.5 4.4L8.8 20.5 4.5 14l1-0.9 3.3 5L18.5 3.5 19.5 4.4z"></path></svg></div><div class="label" id="9e3g" aria-hidden="true" style="display: none;"></div></div></div><div role="gridcell" class="editable"><input autocomplete="off"></div><div role="gridcell" class="editable"><input autocomplete="off"></div></div></div></div></div> 使用 chrome 进行检查,我发现我要修改的值是第三个网格单元,我想用另一个网格单元插入/替换现有值(例如 100)。 我尝试使用以下方法来做到这一点: element = driver.find_element(By.XPATH,'//*[@id="madpenguin"]/div[3]/div[3]/div/div[2]/div/div[2]/div[1]/div[3]') driver.execute_script("arguments[0].innerText = '100'", element) 但我收到以下错误: selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="madpenguin"]/div[3]/div[3]/div/div[2]/div/div[2]/div[1]/div[3]"} 我在问题中共享的HTML中没有找到id=madpenguin。基于共享 HTML,尝试以下 XPath 表达式: (//div[@class='grid-content']//input)[5] 说明: (//div[@class='grid-content']//input)[5] 选择第五个 <input> 元素,该元素是 HTML 文档中 class 属性设置为 <div> 的 grid-content 元素的后代。如果你想要第六个元素,只需更改为[6],第七个[7],依此类推。 示例代码: driver.find_element(By.XPATH, "(//div[@class='grid-content']//input)[5]").send_keys("100")

回答 1 投票 0

“DevTools 监听 ws://127.0.0.1”消息在 python selenium 中不会消失

我知道这个问题是重复的。然而,无论我写多少,下面这句话都不会消失。 DevTools 监听 ws://127.0.0.1:62784/devtools/browser/9f06f86e-f98b-4896-9f35-

回答 0 投票 0

是否可以手动停止Selenium Python中的代码以绕过验证码,然后恢复它

我使用 Selenium 和 Python 来与网络交互。是否可以以某种方式启动浏览器,然后暂停程序一段时间,比如 2 分钟,然后让其余代码运行。

回答 1 投票 0

TestNG 中小组做什么?

我想知道@Test中的组参数如何工作。 我们为什么使用组,以及 Junit 和 ... 中 @Test(groups = { "fast" }) 和 @Test(groups = { "slow" }) 之间的区别是什么

回答 1 投票 0

使用“@pytest.hookimpl(tryfirst=True)”会导致以下 AttributeError“生成器对象没有跳过属性”

我目前正在使用 pytest-html 和 selenium 制作一个独立的 html 报告。 顺便说一句,这是方法: @pytest.mark.hookwrapper def pytest_runtest_makereport(项目): ”“”

回答 1 投票 0

Selenium.py 找不到元素内容

我在discord bot中使用selenium.py,每当我运行此函数时: # 机器人.py 机器人类(): async def find_player(self, name): # 如果机器人在游戏中 _class = 'fgui-lb-entry-n' ...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.