selenium-webdriver 相关问题

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

Selenium 未检测到具有不同 chrome 版本的 chromedriver?

我有以下代码,可以在当前安装 chrome 122 的计算机上正常运行 - 将 unDetected_chromedriver 导入为 uc 驱动程序 = uc.Chrome() driver.get('https://ballzy.eu/en/men/sport/

回答 1 投票 0

返回页面时,在 selenium python 中出现 Stale Element 错误

我正在尝试用 python selenium 为这个网站构建我自己的网络抓取器:https://wyszukiwarka-krs.ms.gov.pl/, 但是当我的代码从单击一个元素返回时,它给出了这个错误:消息:

回答 1 投票 0

当没有更多月份可以检查时如何中断或退出循环

我正在尝试完成一项任务,获取月份和年份的文本,如果这些文本与所需的月份和年份匹配,则代码应获取可用的日期并单击/选择所需的日期。我...

回答 1 投票 0

如何从列表框中选择选项值?

在我们的应用程序中,大多数文件都嵌入了带有输入字段的列表框,当我们对元素进行诅咒时,它会显示列表,然后我们需要从列表中选择值 环境:硒

回答 1 投票 0

Sendkeys方法未使用appium在Windows桌面应用程序的文本框中输入@

使用发送键在电子邮件 ID 字段中输入“@”不起作用,而是输入“G”而不是“@”。 示例电子邮件:[email protected] 使用 selenium 在电子邮件中输出:GradyGgmail.co...

回答 1 投票 0

CSS选择器-如何定位父元素

有没有办法在CSS选择器中定位父元素? 我正在使用下面的代码,但我没有获取父元素。 WebElement we=dr.findElement(By.cssSelector("div[id='gf-BIG']:parent")); ...

回答 4 投票 0

多个复选框单击不起作用。它总是点击第一个元素

我想单击“校园”复选框,但它仅单击第一个复选框。 下面是代码—— WebDriver 驱动程序 = new ChromeDriver(); driver.get("https://www.snapdeal.com/products/mens-footwear-

回答 1 投票 0

如何在Python中使用selenium的无头模式?

我正在使用最近补丁说明中的相同代码,但它仍然无法工作。 选项 = ChromeOptions() options.add_argument("--headless=new") 驱动程序 = webdriver.Chrome(选项=op...

回答 1 投票 0

Python 子进程启动新的 chrome 选项卡

我有一个小的pythons脚本,可以在启动时启动我需要的所有选项卡,最后应该有一个新的选项卡页: 导入请求 导入子流程 导入时间 chrome_path = r'C:\程序 F...

回答 1 投票 0

Xpath 嵌套跨度

我有以下html: 我有以下html: <div id="aod-price-1" class="a-section a-spacing-none a-padding-none"> <span class="a-price" data-a-size="l" data-a-color="base"> <span class="a-offscreen">$79.58</span> <span aria-hidden="true"> <span class="a-price-symbol">$</span> <span class="a-price-whole"> "79" <span class="a-price-decimal">.</span> </span> <span class="a-price-fraction">58</span> </span> </span> </div> 我正在尝试提取 79.58 美元。 我用过: priceFound = WebDriverWait(browser,10).until(EC.presence_of_all_elements_located((By.XPATH, "//span[@class='a-price']"))) 这似乎有效,但并不完全符合我的预期: 返回: $79 58 2 行分开,无小数 我正在尝试提取完整的文本字符串:$79.58 我什至尝试过: priceFound = WebDriverWait(browser,10).until(EC.presence_of_all_elements_located((By.XPATH, "//span[@class='a-offscreen']"))) 和 priceFound = WebDriverWait(browser,10).until(EC.presence_of_all_elements_located((By.XPATH, "//span[@class='a-price-whole']"))) 那2个没用。 根据迄今为止的建议进行更新: 请注意,priceFound是一个列表,并且有几个像上面实际html中的块一样的块(许多价格)。 <div id="aod-price-1" ... </div> <div id="aod-price-2" ... </div> <div id="aod-price-3" ... </div> <div id="aod-price-4" ... </div> 为了清楚起见,我刚刚发布了一个区块,这就是我选择列表的原因。 priceFound = WebDriverWait(browser, 10).until(EC.presence_of_all_elements_located((By.XPATH, "//span[@class='a-price']/span[@class='a-offscreen']"))) for price in priceFound: print(price.text) 返回:几个空行(具体为空回车) 我想知道 XPath 中的某个位置是否需要 .text 引用? 更新2: 我使用以下命令单击“查看所有购买选择”按钮。它确实有效。 然后稍微等待一下,等待价格上涨。 Expand_button_Element = browser.find_element_by_id("buybox-see-all-buying-choices") Expand_button_Element.click() 更新3: wait = WebDriverWait(browser, 10); # wait for panel to be visible wait.until(EC.visibility_of_element_located((By.ID, "aod-container"))) # this wait is probably no longer needed but left in to be safe priceFound = wait.until(EC.visibility_of_all_elements_located((By.XPATH,"//span[@class='a-price']"))) for price in priceFound: print(price.text) ` 产生(作为示例): 77 美元 23 77 美元 24 79 美元 59 79 美元 94 78 美元 95 83 美元 94 79 美元 99 79 美元 95 79 美元 99 89 美元 00 但是当我尝试下面的代码建议时: browser.find_element_by_id("buybox-see-all-buying-choices").click() wait = WebDriverWait(browser, 10); # wait for panel to be visible wait.until(EC.visibility_of_element_located((By.ID, "aod-container"))) # this wait is probably no longer needed but left in to be safe priceFound = wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "span.a-price > span.a-offscreen"))) for price in priceFound: print(price.text) 我收到以下错误: priceFound = wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "span.a- price > span.a-offscreen"))) File "/home/codingArea/.local/lib/python3.8/site-packages/selenium/webdriver /support/wait.py", line 80, in until raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message: 这似乎是一个类似的问题: 如何从selenium中的嵌套span标签获取文本 我认为这肯定会起作用: priceFound = wait.until(EC.visibility_of_all_elements_located((By.XPATH,"//span[@class='a-price']/span[@class='a-offscreen']"))) 但它超时了,这对我来说毫无意义。 我确保我正在运行最新的硒。 更新4: 我使用了以下内容,它没有错误,但它产生了空行(如 10 个回车符)。 priceFound = browser.find_elements_by_css_selector('span.a-offscreen') for price in priceFound: print(price.text) 您尝试了多种方法,但没有发布每种方法的结果。因此,作为基线,让我们从一些简单的事情开始,看看它是否可以解决问题。如果没有,我们可以从那里开始工作。 让我们使用一个简单的 CSS 选择器并添加一个可见性等待。 (注意:您使用的是存在,但这仅意味着该元素位于 DOM 中,而不是它可见) # this code starts after clicking link to open product panel with pricing browser.find_element_by_id("buybox-see-all-buying-choices").click() wait = WebDriverWait(browser, 10); # wait for panel to be visible wait.until(EC.visibility_of_element_located((By.ID, "aod-container"))) # this wait is probably no longer needed but left in to be safe priceFound = wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "span.a-price > span.a-offscreen"))) for price in priceFound: print(price.text) product.find_element(By.XPATH, ".//span[@class='a-price']//span[@class='a-offscreen']").get_attribute('textContent').strip() 尝试以上方法。

回答 2 投票 0

单击具有更改类别的 svg 标签

下面的标签具有不断变化的类值,因此不能用于引用该标签。如何找到此标签并执行点击操作 下面的标签具有不断变化的类值,因此不能用于引用该标签。如何找到此标签并执行点击操作 <div class="x6s0dn4 x78zum5 x1q0g3np xs83m0k"><svg aria-label="Options" class="x1lliihq x1n2onr6 x5n08af" fill="currentColor" height="32" role="img" viewBox="0 0 24 24" width="32"><title>Options</title><circle cx="12" cy="12" r="1.5"></circle><circle cx="6" cy="12" r="1.5"></circle><circle cx="18" cy="12" r="1.5"></circle></svg></div> 下面的代码一度有效,但类值发生了变化。 driver.find_element_by_xpath('//div[@class="x6s0dn4 x78zum5 xdt5ytf xl56j7k"]/*[name()="svg"][@aria-label="Options"]').click() 我该如何编写它,使其不依赖于类值并且仍然执行单击操作? 我认为宽度和高度可能不太可能改变。所以你可以使用这个: driver.find_element_by_xpath('//svg[@aria-label="Options" and @width="32" and @height="32"]').click() 如果它是该页面上唯一带有 svg 的 aria-label="Options",您可以尝试以下 XPath: "//svg[@aria-label='Options']" driver.find_element("xpath", "//svg[@aria-label='Options']").click()

回答 2 投票 0

如何使用硒从每个手风琴部分中抓取所有文本?

我正在使用硒从网站上刮掉一些价格,但是我使用的代码似乎并没有迭代每个手风琴块。我想要的只是每次治疗的标题、项目和价格。 嗬...

回答 1 投票 0

使用 Selenium 机器人更新 Shopify 价格时出现问题

我创建了一个机器人,可以使用 Selenium Python 自动更新 Shopify 上的产品价格。我告诉这个机器人找到价格元素并清除它,然后以小数点后两位格式发送新价格

回答 2 投票 0

为什么我在 45 次操作后仍然出现错误 - LinkedIn URLs

我使用selenium等在python中编写了一段代码来打开LinkedIn url以获取登录url。一切正常,但我收到错误消息:在 45 个 url 后出现无效会话 id

回答 1 投票 0

org.openqa.selenium.InvalidElementStateException:Appium 无法执行 W3C 操作。检查 logcat 输出是否有可能的错误报告

我试图通过获取两个元素的边界然后从一个点移动到另一个点来滚动,但我遇到了以下异常: 例外: org.openqa.selenium.

回答 1 投票 0

在Python中解压选择表单下拉值

我正在尝试使用Python(selenium)填写表格!但面临错误“TypeError:‘str’对象不可调用” 这是我的代码 your_choice=browser.find_element(By.XPATH("//sel...

回答 2 投票 0

在 Docker 中使用 Chrome 运行 Selenium 时出错

我正在尝试在利用 Selenium ChromeWebDriver 的 docker 容器中部署 Python 脚本: def 初始化_驱动程序(自身): 尝试: 选项 = webdriver.ChromeOptions() ...

回答 2 投票 0

使用 Selenium Python 登录 Google

此代码受 selenium 4 支持。 打开浏览器后,我尝试菜单签名,但它不起作用。 消息是。 此浏览器或应用程序可能不安全。了解更多 尝试使用不同的眉毛...

回答 1 投票 0

如何使用selenium和python单击网页上的按钮来下载其链接根据日期变化的文件

我正在尝试使用python和selenium从网站上查找和下载文件,但是我无法使用xpath或id找到它,因为每天我都想下载特定日期的文件..hr...

回答 1 投票 0

Microsoft 打印到 PDF 覆盖 Selenium 首选项 (Python)

我正在使用 Selenium 抓取外部网页并下载 PDF 以进行自动数据分析。不幸的是,该网站有一个内部 PDF 查看器,这意味着我必须将其首选项设置为避免...

回答 1 投票 0

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