Selenium-WebDriver提供WebDriver API,用于控制不同编程语言的浏览器(“语言绑定”)。使用此标记时,还要为正在使用的编程语言添加标记。
我正在尝试自动化此页面的抓取过程:https://www.immobilienscout24.de/ 但我在使用这个下拉菜单时遇到了问题: 该部分的代码是: Apart_or_house = 选择(博士...
管理 chromedriver public 时出错(对于输入字符串:“public”)
`您好, 使用 webDriverManager,当我的 chrome 浏览器更新时,出现下一个错误: `874 [main] 错误 io.github.bonigarcia.wdm.WebDriverManager – 管理 chromedriver pu 时出错...
将对象转换为 WebElement 或 SearchContext JavaScript
使用 JavaScript 将对象转换为 WebElement 或 SearchContext 的正确方法是什么? 在 Java 中,我只需添加“(WebElement)”或“(
用于工作站点的 Selenium Webscraper 在进度的特定点中断。该怎么办?问题出在哪里?
我构建了这个网络爬虫来监控足球俱乐部的工作职位。我几个月前写的,直到一周前才有效。现在,它有多个问题。 无论哪种方式。我尝试修复它,改变了
无法使用 Selenium 驱动程序单击输入字段(元素未隐藏在影子 DOM 或 iframe 内)
我正在尝试抓取以下网站https://www.immobilienscout24.de/。 我刚刚开始使用 Selenium 进行自动化过程,并且已经遇到了障碍。无论我做什么,我...
我无法让 python 脚本与 firefox 和 selenium 一起使用
嗨,请帮助我,我在获取与 Firefox 和 Selenium 一起使用的 Python 脚本时遇到问题 我用 pytest 运行了命令,结果出来了请帮助我 我使用 VPS Linux Ubuntu 来启动这个...
我试图在Python中的Selenium的帮助下搜索一个url:https://rewards.bing.com/pointsbreakdown,所以我编写了以下代码块 search_in_first = driver.find_element(By.ID, '
我正在使用Python 3.8构建一个网络爬虫。我想要做的是使用 Selenium、pandas、bs4 将下表转换为 pandas 数据帧。 我正在使用 Python 3.8 构建一个网络爬虫。我想要做的是使用 Selenium、pandas、bs4 将下表转换为 pandas 数据框。<table class="no_border_top" width="95%" align="center"> <tbody> <tr> <th align="left" valign="top" rowspan="100" width="8%">1.2.12</th> <th align="left" colspan="4">Outras cotas de Fundos de Investimento</th> </tr> <tr> <td width="40%"><b>Fundo</b></td> <td width="22%"><b>CNPJ</b></td> <td width="15%"><b>Quantidade</b></td> </tr> <tr> <td>Itaú Soberano RF Simples LP FICFI</td> <td>06.175.696/0001-73</td> <td>247.719,87</td> <td>11.996.245,91</td> </tr> <tr> <td>Itaú TOP RF Referenciado DI FICFI</td> <td>05.902.521/0001-58</td> <td>77.085,90</td><td>372.686,27</td> </tr> </tbody> </table> 顺便说一句,这是我试图从中抓取数据的链接: https://fnet.bmfbovespa.com.br/fnet/publico/visualizarDocumento?id=111845&cvm=true 问题如果您能够打开链接(如果这不起作用,我将编辑此问题,发布网站 html 中的一些打印内容),您会看到我感兴趣的表格是其中的许多表格之一网页 html 中的 html 文档我正在抓取信息。这个嵌套 html 中的所有表格都具有相同的类,它们都是 <table class="no_border_top" width="95%" align="center">...</table>。 Selenium 提供了一些工具来捕获给定元素的 id、类、Xpath 等的元素。我尝试使用 find_element_by_xpath()(通过复制 Chrome 开发工具给出的完整 XPath 来传递收集的 Xpath)和 find_element_by_link_text() 来获取此表,但这些选项都不适合我。这是我正在使用的代码:def make_selenium_browser(): options = Options() options.headless = True options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') browser = Firefox(options=options) return browser url = 'https://fnet.bmfbovespa.com.br/fnet/publico/visualizarDocumento?id=111845&cvm=true' browser = make_selenium_browser() browser.get(url) #not working data = browser.find_element_by_xpath('/html/body/table[28]') #this is also not working browser.find_element_by_partial_link_text('Outras cotas de Fundos de Investimento') 错误 File "/home/occhima/miniconda3/envs/wdev/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 462, in find_element_by_partial_link_text return self.find_element(by=By.PARTIAL_LINK_TEXT, value=link_text) File "/home/occhima/miniconda3/envs/wdev/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 976, in find_element return self.execute(Command.FIND_ELEMENT, { File "/home/occhima/miniconda3/envs/wdev/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute self.error_handler.check_response(response) File "/home/occhima/miniconda3/envs/wdev/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: Outras cotas de Fundos de Investimento 如何让 Selenium 找到我感兴趣的表? 您的目标元素位于框架内: <iframe src="exibirDocumento?id=111845&cvm=true&#toolbar=0" style="width: 100%; height: 800px"> #document <html> ... ... ... <table class="no_border_top" width="95%" align="center"> ... ... 您需要先切换它。使用 browser.switch_to.frame(iframe_reference),如下所示: url = 'https://fnet.bmfbovespa.com.br/fnet/publico/visualizarDocumento?id=111845&cvm=true' browser = make_selenium_browser() browser.get(url) browser.switch_to.frame(browser.find_element_by_css_selector('iframe[src*=exibirDocumento]')) data = browser.find_element_by_xpath('/html/body/table[28]') print(data.text) 您还可以使用以下xpath: data = browser.find_element_by_xpath('//table[contains(., "Outras cotas de Fundos de Investimento")]')
AttributeError:“NoneType”对象没有属性“find_element”
我的测试脚本中遇到一些问题。我在这里做错了什么?在此之前先概述一下,其网站使用 pytest 在 python 和 selenium 中进行测试。我的硒是 v4.18.1 和 Ch...
我正在尝试从新闻源页面中抓取和重新调整新闻图像和标题的用途,以便我可以在标牌显示(Xibo)中重复使用它们。基本上我只想要
Beautiful Soup 是一个用于从 HTML 和 XML 文件中提取数据的 Python 库。我将用它来提取网页数据,但我没有找到任何方法来单击我使用的按钮、锚点标签...
Selenium 和 Chromedriver 以及从 Cron 运行的 Python
我一直在 Raspberry Pi 5 上运行 Selenium、Chromedriver 和 Python。因为 Chromedriver 并没有真正的 ARM 版本可供下载,但根据 APT 上有一个版本 https://f...
如何使用 Selenium WebDriver C# 从下拉列表中选择一个选项?
我正在尝试选择一个选项进行网络测试。可以在此处找到示例:http://www.tizag.com/phpT/examples/formex.php 除了选择一个选项部分之外,一切都很好。如何销售...
使用 Selenium 使用“data-testid”属性获取元素
我正在尝试使用以下 data-testid 获取 HTML 中每个元素的数据,如下所示: 我的代码... 我正在尝试使用以下 data-testid 获取 HTML 中每个元素的数据,如下所示: <div data-testid="sl.explore.card-description"</div> 我写的代码如下,但不起作用: desc_list = [] desc = driver.find_elements(By.XPATH, "//div[@data-testid='sl.explore.card-description']") for i, cp in enumerate(desc): splitted = desc[i].text.split('\n'); data_desc = str(splitted[0:1]) desc_list.append(data_desc); df_desc = pd.DataFrame(desc_list) 代码中的主要问题可能在于访问元素和提取文本的方式。检查您的 XPath 以确保它选择正确的元素。此外,请确保您选择的元素具有可提取的文本内容。 import pandas as pd from selenium import webdriver from selenium.webdriver.common.by import By # You must have initialized your Selenium WebDriver instance as a 'driver' desc_list = [] # Use find_elements instead of find_element to get a list of elements desc = driver.find_elements(By.XPATH, "//div[@data-testid='sl.explore.card-description']") for cp in desc: # Check if an element has text content before splitting it if cp.text: # Split text content with newline characters splitted = cp.text.split('\n') # Extract the desired data (for example, the first row) data_desc = splitted[0] desc_list.append(data_desc) # Create the DataFrame after the loop to avoid creating unnecessary DataFrames inside the loop df_desc = pd.DataFrame(desc_list, columns=['Description']) 确保您的 XPath 实际上选择了您想要的元素,并确保它具有可提取的文本内容。
Java - Selenium 4.18.1:无法启动新会话。可能的原因是远程服务器地址无效或者浏览器启动失败
Selenium 最近更新了其使用网络驱动程序的方式。 (我之前有过使用 python 中的 selenium 版本 4.9.0 的经验,我们刚刚下载了 Web 驱动程序并通过 driver = webdriver.Edge(
“线程“主”java.lang.IndexOutOfBoundsException 中出现异常:
在 Selenium JAVA 中针对以下代码获取上述异常。有人可以帮我吗.. driver.get("https://jqueryui.com/"); 列表 列表链接 = driver.findElemen...
使用 Python Selenium 与 React 图表交互
我正在尝试使用 Python Selenium 按下网页 https://coinmarketcap.com/currencies/vitex-coin/ 上 React 图表中的按钮。我尝试使用 xpath 但我想要一种更通用的方法,因为它应该
使用 selenium Python 单击 javascript 按钮
我是 Selenium Python 和 JavaScript 的新手。我正在尝试使用 Selenium python 自动化网页导航。我想单击一个 Java 脚本按钮。下面是 html 标签。 我是 Selenium Python 和 JavaScript 的新手。我正在尝试使用 Selenium python 自动化网页导航。我想单击一个 Java 脚本按钮。下面是html标签。 <button type="button" class="hpButton" onclick="loadAddPage()" id="btnNew" tabindex="100" style="width: 83px;">New...</button> 如何从 Selenium Python 单击“新建..”按钮。我已经尝试过以下操作,但出现错误。 driver.find_element_by_id('btnNew') 和 NEXT_BUTTON_XPATH = '//input[@type="button" and @id="btnNew"]' button = driver.find_element_by_xpath(NEXT_BUTTON_XPATH) button.click() 根据要求提供 HTML 片段 <script type='text/javascript' language='JavaScript'> var FORM_URL_ID_MY_DISCOVERY_LIST = '/mxportal/settings/AutoDiscoveryList.jsp';</script> <script type='text/javascript' language='JavaScript'> window.SELECTABLE_ID_MY_DISCOVERY_LIST = true;window.PRESELECTED_ID_MY_DISCOVERY_LIST = true;window.PRESELECTION_DEFAULT_ID_MY_DISCOVERY_LIST = true;</script> <div id='ID_MY_DISCOVERY_LIST_headerDiv' class='headerDivOuter'><div class='headerDivInner'><div onClick='MxFragmentLoad("/mxportal/settings/AutoDiscoveryList.jsp?MxTableSort=true&table=ID_MY_DISCOVERY_LIST&sortCol=91787367&sortUp=true")' class='visualColumnHeader sortable'><div class='pad0x5'></div></div><div onClick='MxFragmentLoad("/mxportal/settings/AutoDiscoveryList.jsp?MxTableSort=true&table=ID_MY_DISCOVERY_LIST&sortCol=0&sortUp=false")' class='visualColumnHeader sortedAscending'><div class='pad0x5'>Name</div></div><div onClick='MxFragmentLoad("/mxportal/settings/AutoDiscoveryList.jsp?MxTableSort=true&table=ID_MY_DISCOVERY_LIST&sortCol=1&sortUp=true")' class='visualColumnHeader sortable'><div class='pad0x5'>Last Run</div></div><div onClick='MxFragmentLoad("/mxportal/settings/AutoDiscoveryList.jsp?MxTableSort=true&table=ID_MY_DISCOVERY_LIST&sortCol=2&sortUp=true")' class='visualColumnHeader sortable'><div class='pad0x5'>Schedule</div></div><div onClick='MxFragmentLoad("/mxportal/settings/AutoDiscoveryList.jsp?MxTableSort=true&table=ID_MY_DISCOVERY_LIST&sortCol=3&sortUp=true")' class='visualColumnHeader sortable'><div class='pad0x5'>Comments</div></div></div></div><div id='ID_MY_DISCOVERY_LIST_scrollingTableDiv' style='clear:both;overflow:visible'><table id='ID_MY_DISCOVERY_LIST' cellspacing='0' class='scrollingTable' cellpadding='0'><thead><tr class='readerCaptionRow'><th onClick='MxFragmentLoad("/mxportal/settings/AutoDiscoveryList.jsp?MxTableSort=true&table=ID_MY_DISCOVERY_LIST&sortCol=91787367&sortUp=true")' class='checkboxCell sortable'></th><th onClick='MxFragmentLoad("/mxportal/settings/AutoDiscoveryList.jsp?MxTableSort=true&table=ID_MY_DISCOVERY_LIST&sortCol=0&sortUp=false")' class='sortedAscending' scope='col'>Name</th><th onClick='MxFragmentLoad("/mxportal/settings/AutoDiscoveryList.jsp?MxTableSort=true&table=ID_MY_DISCOVERY_LIST&sortCol=1&sortUp=true")' class='sortable' scope='col'>Last Run</th><th onClick='MxFragmentLoad("/mxportal/settings/AutoDiscoveryList.jsp?MxTableSort=true&table=ID_MY_DISCOVERY_LIST&sortCol=2&sortUp=true")' class='sortable' scope='col'>Schedule</th><th onClick='MxFragmentLoad("/mxportal/settings/AutoDiscoveryList.jsp?MxTableSort=true&table=ID_MY_DISCOVERY_LIST&sortCol=3&sortUp=true")' class='sortable' scope='col'>Comments</th></tr></thead><tbody><tr id='ID_MY_DISCOVERY_LIST_dummyRow' class='dummyRow'><td><div></div></td><td class='sorted'><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td></tr><tr class='altRowColor rowHighlight'><td scope='row' class='checkboxCell'><input rowselector='yes' checked name='ID_MY_DISCOVERY_LIST_selector' type='RADIO'></td><td class='sorted'>ESX VC</td><td>1/13/17 11:00 AM</td><td>Periodic - Next Run: 1/14/17 11:00 AM</td><td></td></tr><tr><td scope='row' class='checkboxCell'><input name='ID_MY_DISCOVERY_LIST_selector' type='RADIO' rowselector='yes'></td><td class='sorted'>Hyper-vHost</td><td>1/13/17 11:00 AM</td><td>Periodic - Next Run: 1/14/17 11:00 AM</td><td></td></tr><tr class='altRowColor'><td scope='row' class='checkboxCell'><input name='ID_MY_DISCOVERY_LIST_selector' type='RADIO' rowselector='yes'></td><td class='sorted'>OA</td><td>1/13/17 11:00 AM</td><td>Periodic - Next Run: 1/14/17 11:00 AM</td><td></td></tr><tr><td scope='row' class='checkboxCell'><input name='ID_MY_DISCOVERY_LIST_selector' type='RADIO' rowselector='yes'></td><td class='sorted'>OA 42.35</td><td>1/13/17 11:00 AM</td><td>Periodic - Next Run: 1/14/17 11:00 AM</td><td></td></tr><tr class='altRowColor'><td scope='row' class='checkboxCell'><input name='ID_MY_DISCOVERY_LIST_selector' type='RADIO' rowselector='yes'></td><td class='sorted'>System Automatic Discovery</td><td>Never</td><td><b>Task is Disabled</b> - Periodic</td><td></td></tr><tr style='display:none' class='noDataRow'><td colspan='5'>No discovery tasks defined.</td></tr></tbody></table></div> <div style="margin-top:15px"> <div class='buttonSet'> <div class='bWrapperUp'><div><div><button type='button' class='hpButton' onclick='runNowStop()' id='btnRunNowStop' tabindex='105'>Run Now</button></div></div></div> <div class='bWrapperUp'><div><div><button type='button' class='hpButton' onclick='viewTaskResults()' id='btnViewTaskResults' tabindex='104'>View Task Results...</button></div></div></div> <div class='bWrapperUp'><div><div><button type='button' class='hpButton' onclick='confirmDeleteDiscoveryTask()' id='btnDelete' tabindex='103'>Delete...</button></div></div></div> <div class='bWrapperUp'><div><div><button type='button' class='hpButton' onclick='enableDisableDiscoveryTask()' id='btnEnableDisable' tabindex='102'>Disable</button></div></div></div> <div class='bWrapperUp'><div><div><button type='button' class='hpButton' onclick='loadEditPage()' id='btnEdit' tabindex='101'>Edit...</button></div></div></div> <div class='bWrapperUp'><div><div><button type='button' class='hpButton' onclick='loadAddPage()' id='btnNew' tabindex='100'>New...</button></div></div></div> </div> <div class='clearFloats'></div> 我猜这是一个框架问题。 即使您有一个完全正确的 XPATH,Selenium 也不会看到该元素,除非您已经位于包含该元素的框架中。 要快速查看您所在页面上有多少帧: a = driver.find_elements_by_css_selector("frame") print(len(a)) 如果您发现有,比如说,三个框架,您可以这样做: driver.switch_to_frame(a[0]) button.click() 或 driver.switch_to_frame(a[1]) button.click() 或 driver.switch_to_frame(a[2]) button.click() 您可以使用以下方式来定位您的元素 find_element_by_id find_element_by_name find_element_by_xpath find_element_by_link_text find_element_by_partial_link_text find_element_by_tag_name find_element_by_class_name find_element_by_css_selector 请参阅文档http://selenium-python.readthedocs.io/ located-elements.html 一些相同的例子如下 1。通过 CSS 选择器 driver.find_element_by_css_selector('.button.c_button.s_button').click() 2。按名字 driver.find_element_by_name('s_image').click() 3.按类名 driver.find_element_by_class_name('s_image').click() 您应该尝试在点击按钮之前添加一些等待时间,如下所示: from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC button = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "btnNew"))); button.click(); 使用上述代码,您最多可以等待 20 秒以使目标按钮变得可点击。否则你会得到TimeOutException 如果此解决方案不起作用,请检查您的按钮是否位于 <iframe> 元素内。如果是这样,请在单击按钮之前切换到该框架: driver.switch_to_frame('iframe_id')
无法使用其免费 dr 服务(使用“seleniumbase”)绕过 ahrefs.com 上的 cloudflare 验证码
这是我的代码:(我使用 seleniumbase 访问网站) 从 seleniumbase 导入 SB、驱动程序 导入时间 将 SB(uc=True, test=True) 作为 sb: url =“https://ahrefs.com/website-author...
如何在 Firefox 私有模式下运行我的 Selenium Web 驱动程序,而不是普通的 Firefox? 我尝试了以下方法,但没有成功: firefox_profile = webdriver.FirefoxProfile() firefox_profile.