Questions tagged «selenium-webdriver»

Selenium-WebDriver提供了WebDriver API,用于控制使用不同编程语言(“语言绑定”)的浏览器。使用此标签时,还请添加所用编程语言的标签。



7
使用webdriver滚动到元素?
我仍在学习,并在回答我的一个问题:在这里,我被告知可能是由于没有考虑到所涉及的元素。 我仔细阅读了文档和SO,这是最相关的答案:这里 您可以使用“ org.openqa.selenium.interactions.Actions”类移动到元素: WebElement element = driver.findElement(By.id("my-id")); Actions actions = new Actions(driver); actions.moveToElement(element); ## actions.click(); actions.perform(); 当我尝试使用以上内容滚动到元素时:它表示未定义WebElement。 我认为这是因为我尚未导入相关模块。有人可以指出我应该导入的内容吗? 编辑:正如alecxe指出的,这是Java代码。 但是与此同时,在试图弄清楚一段时间之后。我发现了WebElement的导入方法: from selenium.webdriver.remote.webelement import WebElement 可能会帮助像我这样的人。 IMO也是一个很好的教训: 去:文档 的 class selenium.webdriver.remote.webelement.WebElement(parent, id_, w3c=False) 需要分成上面提到的命令形式。


21
使用带有Java的Selenium WebDriver切换选项卡
将Selenium WebDriver与JAVA结合使用。我试图自动执行一项功能,在该功能中我必须打开一个新选项卡,然后在此处执行一些操作,然后返回到上一个选项卡(父项)。我使用了开关手柄,但无法正常工作。奇怪的是,两个选项卡具有相同的窗口句柄,因此我无法在两个选项卡之间切换。 但是,当我尝试使用其他Firefox窗口时,它可以工作,但是对于选项卡,它却无法工作。 请帮我。如何切换标签。或者在不使用窗口句柄的情况下如何切换选项卡,就我而言,这两个选项卡都是相同的。 (我观察到,当您在同一窗口中打开不同的选项卡时,窗口句柄保持不变)

5
如何比较2个iframe并在视觉上获得差异?
案件 : 我有2个iframe,并且都有很多div和其他控件,所以两个iframe都像HTML网站的中等大小。我想将两者进行比较并找出差异。 我在这里想到了不同的选择: 解决方案1:拍摄2个iframe的完整屏幕快照,并使用Python的枕头库比较两个屏幕快照,该枕头库在屏幕快照的不匹配区域上绘制网格。但是这里的问题是我在互联网上找不到任何可以获取完整iframe屏幕截图的代码(我的iframe较长且带有滚动条)。我在SO上尝试了几乎所有答案,但是所有答案都适用于正常页面,但不适用于iframe。 参考:https : //blog.rinatussenov.com/automating-manual-visual-regression-tests-with-python-and-selenium-be66be950196 解决方案2:以某种方式从两个iframe中获取所有HTML代码并进行比较,但这很难分析结果,因为它将找到一些不同的HTML代码或两个iframe中存在不匹配的HTML代码。我相信这将更像是文字比较,而不是一个好的解决方案。 因此,我正在寻找可以使用Python或Javascript拍摄iframe完整屏幕截图的代码,或者是可以比较2个iframe并找出差异的更好的选择。 我尝试了谷歌按照以下方法找到的几乎所有答案: 这里提供了示例iframe,其中整个html都位于iframe中:https : //grapesjs.com/demo.html,如果某些代码可以获取此iframe的完整屏幕截图,那么对我来说就很容易比较。

9
Chromedriver 78可能存在问题,Selenium找不到在Chrome中打开的PDF的Web元素
在我的Google Chrome浏览器未更新到版本78之前,我的代码无法正常工作。我还将chromedriver更新为版本78.0.3904.70。因此,我无法再使用Selenium WebDriver和Java查找id ='plugin'的WebElement: <html> <div id="content"> <embed id="plugin" type="application/x-google-chrome-pdf" src="http://??????????/offer_printed.php?printable=yes&reanudar=&> </div> </html> 除此之外,我的测试工作正常。我以前从未遇到过类似的问题。我也尝试找到WebElement id ='content',但收到相同的错误。 WebDriverWait wait = new WebDriverWait (driver, 90); WebElement scrollvalid = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("plugin"))); scrollvalid.sendKeys(Keys.PAGE_DOWN); scrollvalid.sendKeys(Keys.PAGE_DOWN); 我的自动化脚本应该找到PDF元素并向下滚动页面。相反,我收到此错误:org.openqa.selenium.TimeoutException:等待90秒后等待By.id定位的元素可见:插件超时 有人面临类似的问题吗?提前致谢。

2
12296:26672:0420 / 163936.459:ERROR:Browser_switcher_service.cc(238)“ Selenium Python”中的XXX Init()错误
我正在使用版本81.0.4044.113(正式版本)(64位)。以前没有发生过,并且代码运行正常。但是几天后,我再次运行了此错误。 我正在使用这些模块-> from selenium import webdriver 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.common.exceptions import TimeoutException import csv import time from tkinter import * def Authorization(): time.sleep(15) username = driver.find_element_by_id("userInput") username.send_keys('username') driver.find_element_by_xpath("//*[@id='login-button']").click() time.sleep(5) password = driver.find_element_by_xpath("//*[@id='passwordInput']") password.send_keys('password') submit_button = driver.find_element_by_xpath("//*[@id='login-button']").click() def Extractor(): …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.