找到 519 篇文章 关于 Selenium
4K+ 次浏览
我们可以使用 Selenium webdriver 获取 User Agent 信息。这是借助 JavaScript Executor 实现的。Selenium 使用 execute_script 方法执行 JavaScript 命令。要获取 User Agent 信息,我们必须将 return navigator.userAgent 参数传递给 execute_script 方法。Selenium 没有直接方法来获取或修改 User Agent。语法a= driver.execute_script("return navigator.userAgent") print(a)示例from selenium import webdriver from selenium.webdriver.chrome.options import Options # Options 类的对象 op = webdriver.ChromeOptions() # 设置 chromedriver.exe 路径 driver = webdriver.Chrome(executable_path="C:\chromedriver.exe", options=op) # 最大化浏览器 driver.maximize_window() # 加载 URL driver.get("https://www.seleniumhq.org/download/"); # 使用 execute_script 获取 User Agent a= driver.execute_script("return navigator.userAgent") print("User ... 阅读更多
4K+ 次浏览
我们可以在 Selenium webdriver 中设置页面加载的真实超时时间。有多种方法可以实现超时。它们列在下面:setScriptTimeout.pageLoadTimeout.implicitlyWait。setScriptTimeout 是设置 webdriver 时间的方法。这通常应用于异步测试,在抛出异常之前完成。超时默认值为 0。此方法通常用于 Selenium 中的 JavaScript 命令。如果我们省略了脚本的时间设置,则 executeAsyncScript 方法可能会因 JavaScript 完成执行所需的时间过长而失败。如果超时时间设置为负数,则... 阅读更多
1K+ 次浏览
我们可以在 Selenium 中使用 Chrome webdriver 在 Python 中下载文件。我们将为此目的使用 ChromeOptions 类。首先,我们将创建 ChromeOptions 类的对象。然后在创建的对象上应用 add_experimental_option 方法。我们将设置 download.default_directory: 参数。最后,此信息将传递给驱动程序对象。语法op = webdriver.ChromeOptions() p = {'download.default_directory':'C:\Users\ghs6kor\Downloads\Test'} op.add_experimental_option('prefs', p)示例from selenium import webdriver from selenium.webdriver.chrome.options import Options # Options 类的对象 op = webdriver.ChromeOptions() # 浏览器首选项 p = {'download.default_directory':'C:\Users\ghs6kor\Downloads\Test'} # 向浏览器添加选项 op.add_experimental_option('prefs', p) # 设置 chromedriver.exe 路径 driver = webdriver.Chrome(executable_path="C:\chromedriver.exe", options=op) # 最大化浏览器 driver.maximize_window() # 加载 URL driver.get("https://www.seleniumhq.org/download/"); # 点击 ... 阅读更多
3K+ 次浏览
我们可以使 Selenium 等待 Ajax 响应。由于 Ajax 响应导致页面加载时间的确定是一项困难的任务。这可以通过 Selenium 中的同步概念和等待方法的帮助来实现:隐式等待 - 它允许 webdriver 等待指定的时间,之后抛出异常。此等待适用于测试中的所有步骤。语法driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);示例使用隐式等待的代码实现。import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import java.util.concurrent.TimeUnit; public class AjaxImplWt{ public static void main(String[] args) { ... 阅读更多
3K+ 次浏览
我们可以使用 Selenium webdriver 禁用 JavaScript。我们必须使用 Options 类来完成此任务。首先,我们必须创建 Options 类的对象。然后在该对象上应用 set_preference 方法。为了禁用 JavaScript,我们将浏览器参数 javascript.enabled 设置为 False。此外,此信息应传递给驱动程序对象。语法op = Options() op.set_preference('javascript.enabled', False)我们可以通过以下步骤获取浏览器的 javascript.enabled 参数:打开浏览器。在浏览器地址中键入 about:config。在搜索栏中输入 javascript。示例from selenium import webdriver from selenium.webdriver.firefox.options import Options # Options 类的对象 op ... 阅读更多
3K+ 次浏览
我们可以在 Selenium webdriver 中使用 executeAsyncScript 方法。对于 executeAsyncScript 方法,JavaScript Executor 会运行 JavaScript 的异步部分,并引用当前选定的窗口或框架。与 executeScript 相反,使用 executeAsyncScript 方法运行的脚本应通过调用给定的回调来完成。回调始终作为最后一个参数添加到执行的函数中。传递的第一个参数用于获取脚本结果。如果脚本包含 return 语句,则遵循以下规则:对于 HTML 元素,将返回一个 webelement。对于十进制数,将返回一个 double ... 阅读更多
3K+ 次浏览
我们可以将 Selenium 用于 .NET 应用程序。我们应该在系统中安装 Visual Studio 2019 以及 Selenium webdriver 和任何浏览器(如 Firefox、Chrome 等)。然后我们必须利用 NUnit 框架。启动 Visual Studio 2019,然后单击“创建新项目”。在“创建新项目”弹出窗口中出现的搜索框中键入 NUnit。从搜索结果中选择 NUnit 测试项目 (.NET Core)。输入项目名称和位置。然后单击“创建”继续。由于项目是在 NUnit (.Net Core) 上设置的,因此默认情况下将提供 Setup 和 Test 方法。我们应该导航到 ... 阅读更多
330 次浏览
我们可以使用 Selenium webdriver 检查 DOM 是否具有某个类。我们可以使用 findElements 方法获取具有特定类的元素列表。然后将 By.className 或 By.xpath 或 By.cssSelector 作为参数传递给该方法。我们要搜索的类名作为参数传递给该方法。让我们研究以下 html 代码,该代码用于具有类值为 toc chapters 的 ul 元素。然后获取其子元素。示例import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import java.util.concurrent.TimeUnit; public class ClassAttrb{ public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", ... 阅读更多
103 次浏览
我们可以在 Selenium webdriver 中捕获测试截图。捕获屏幕截图是失败测试故障分析中最基本的步骤之一。捕获屏幕截图是一个三步过程。首先,我们将 webdriver 对象转换为名为 TakeScreenshot 的接口。然后,我们必须利用 getScreenshotAs 方法来捕获图像。要捕获的图像的文件格式作为参数传递给该方法。最后,捕获图像的文件需要使用 FileUtils.copyFile 方法复制到某个位置。语法File s = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(s, new File("Image.png"));示例import org.openqa.selenium.By; ... 阅读更多
2K+ 次浏览
executeAsyncScript 和 executeScript 方法之间存在差异。对于 executeScript 方法,JavaScript 执行器使用对当前选定窗口或框架的引用来运行 JavaScript。方法内的脚本将作为未命名函数的主体运行。在脚本内部,文档用于指向当前文档。此外,由于脚本已完成执行,因此本地变量将不存在。但是,全局变量将存在。如果脚本包含 return 语句,则遵循以下规则:HTML 元素将返回一个 webelement。一个双精度数将返回一个... 阅读更多