selenium 相关问题

Selenium是一种流行的开源工具,用于自动化Web浏览器。使用此标记时,还要包含您正在使用的特定组件的其他标记,例如selenium-webdriver用于语言绑定,selenium-ide,selenium-grid等。

使用 python 和 selenium 从网站检索课程表更改 No Such Element 错误、ID、XPATH 等

我的学校有一个系统可以告诉我们日程安排是否有任何变化。 从硒导入网络驱动程序 从 selenium.webdriver.common.by 导入 从 selenium.webdriver.support.ui 导入 WebDriverW...

回答 1 投票 0

使用 selenium C# 在 <p> 标签中输入文本

我花了大约一个小时试图在屏幕上找到一个元素来添加文本。我已经成功添加了标题,但似乎无法添加正文。 我花了大约一个小时试图在屏幕上找到一个元素来添加文本。我已经成功添加了标题,但似乎无法添加正文。 <body id="tinymce" class="mce-content-body content post-type-post post-status-auto-draft post-format-standard locale-en mceContentBody wp-editor wp-autoresize html5-captions has-focus" contenteditable="true" data-id="content" style="overflow-y: hidden;"> <p> <br data-mce-bogus="1"> </p> 当我搜索元素时,它会将我定向到 <p> 标签。 我被难住了。 driver.FindElement(By.Id("tinymce")).SendKeys("Lorem ipsum dolor sit amet, consectetur adipiscing elit"); 您可以像下面的代码一样进行操作。只需更改语法,就像 Java 代码一样。 driver.findElement(By.id("tinymce")).findElement(By.tagName("p")).sendKeys("Lorem ipsum dolor sit amet, consectetur adipiscing elit"); 完成了。在这种情况下,这是我的解决办法。经过一些调整,这与你们所说的基本一致。 driver.SwitchTo().Frame(driver.FindElement(By.Id("content_ifr"))); driver.FindElement(By.Id("tinymce")).SendKeys("your data");

回答 2 投票 0

selenium.common.exceptions.WebDriverException:消息:服务 chromedriver 意外退出。状态代码为:1

我是Python编程新手,目前正在学习Selenium,所以请原谅这可能是一个初学者级别的问题。 我使用 Homebrew 安装了 Selenium,然后尝试在我的

回答 1 投票 0

org.openqa.selenium.NoSuchSessionException:没有这样的会话

在 selenium 中访问以下方法时出现“No Such Session”异常。我知道网上有很多相同的问题有不同的答案,但在我的案例中似乎没有一个得到解决。任意

回答 1 投票 0

Selenium chromdriver 使用 .crdownload 扩展名保存文件

使用以下 selenium/chrome 首选项,我可以将文件下载到运行原始 python 文件的同一文件夹中,并且它可以正常工作(文件另存为 download.xls) 下载目录=...

回答 3 投票 0

无法读取未定义的属性“defaultView”

<a href="/lightning/n/******__Country" title="Country" tabindex="0" draggable="false" aria-describedby="operationId-17" class="slds-context-bar__label-action dndItem"> <span class="slds-truncate">Country</span></a> 我得到的 xpath 为 WebElement tabName = driver.findElement(By.xpath("//a[contains(@href,'Country')]")); 我需要单击国家/地区链接 我尝试了以下选项,但没有效果 1) driver.findElement(By.xpath("//a[contains(@href,'Country') and @title='Country']")).click(); 2) Actions actions = new Actions((WebDriver) driver.getWebDriver()); actions.moveToElement(tabName).click().perform(); 3) ((JavascriptExecutor) driver).executeScript("arguments[0].click();", tabName); waitForSeconds(5); 我正在调用目标异常 org.openqa.selenium.WebDriverException:javascript错误:无法读取 未定义的属性“defaultView” 谁能告诉我如何点击href链接吗? 尝试单击其父代/祖先。例如,如果您有 //a[text()='link of your text'] 并且您收到 javascript 错误,请尝试: //a[text()='link of your text']/parent::* 尝试以下代码 - 它适用于 Salesforce Lightning UI 屏幕: WebElement element = driver.findElement(By.xpath("your xpath")); JavascriptExecutor executor = (JavascriptExecutor)driver; executor.executeScript("arguments[0].click();", element); 测试后发现可以用,分享一下。 要单击以下链接,请使用 WebDriverWait 和 elementToBeClickable,然后使用以下 xpath 单击该链接。 WebDriverWait wait = new WebDriverWait(driver, 15); wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[@title='Country']/span[@class='slds-truncate'][contains(.,'Country')]"))).click(); 对于那些尝试使用 Python 的人,您可以这样做: >>> button_link = driver.find_element_by_xpath('''//*[@id="tab-23"]/slot''') >>> driver.execute_script("arguments[0].click();", button_link ) 尝试 JavaScript。它对我有用 WebElement element = driver.findElement(By.xpath("strPath")); ((JavascriptExecutor) driver).executeScript("arguments[0].click();", element); 使用 SalesForce,我必须选择两个更高的父级别,单击 one-app-nav-bar-item-root,而不是锚标记,这一开始并不直观。 要单击我的帐户选项卡,我使用了 //one-app-nav-bar-item-root/a/span[text()='Accounts']/parent::*/parent::* /** * <p>This method will navigate to a tab open in the top of SalesForce using the tabs name.</p> * @param tabName The text displayed on the tab. Not a URL. * @author <a href="https://stackoverflow.com/users/9889584/sjb">Shawn J Burke</a> */ public void navigateOneAppBarItem(String tabName) { String xPath = String.format("//one-app-nav-bar-item-root/a/span[text()='%s']/parent::*/parent::*", tabName); System.out.println(xPath); WebElement oneBarTab = this.getWebDriver().findElement(By.ByName.xpath(xPath)); oneBarTab.click(); } 感谢 @elcortegano 在 Xpath 中使用父级的建议。 4 年后仍然有帮助。

回答 6 投票 0

如何逐一运行 TestNG 测试

我有一个测试套件,我想逐一运行 XML 文件中的测试。但是当我运行它时,它会同时运行所有TC(我同时打开3个浏览器)。 我的 XML: 我有一个测试套件,我想逐一运行 XML 文件中的测试。但是当我运行它时,它会同时运行所有 TC(我同时打开了 3 个浏览器)。 我的 XML: <suite name="TestingSuite" preserve-order="true" parallel="false" verbose="10"> <test name="Test1"> <classes> <class name="guiAndFunctianal.LoginFail" /> <class name="guiAndFunctianal.LoginAsManager" /> <class name="guiAndFunctianal.CreateUserTest" /> </classes> </test> </suite> 我的 TC 看起来像这样: public class LoginFail extends AbstractTest{ @ BeforeTest public void openBrowser() { openBrowserFireFoxAllTcs(); } @ Test public void main (){ } @ AfterTest public void quit() { driver.quit(); } 抽象测试 public class AbstractTest { WebDriver driver = new FirefoxDriver(); WebDriverWait wait = new WebDriverWait(driver, 10); public void openBrowserFireFoxAllTcs() { driver.get("some URL"); } 我假设你想要顺序执行。打开浏览器>完成测试>关闭浏览器,然后对其他浏览器重复相同的操作。如果是这种情况,我会执行以下操作: TestNG.XML <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite" junit="false" parallel="false" configfailurepolicy="skip" thread-count="5" skipfailedinvocationcounts="false" data-provider-thread-count="10" group-by-instances="false" preserve-order="true" allow-return-values="false"> <test name="firefox" junit="false" skipfailedinvocationcounts="false" preserve-order="true" group-by-instances="false" allow-return-values="false"> <parameter name="browser" value="firefox" /> <classes> <class name="com.github.tests.GitHubHomePageTests" /> </classes> </test> <test name="ie" junit="false" skipfailedinvocationcounts="false" preserve-order="true" group-by-instances="false" allow-return-values="false"> <parameter name="browser" value="ie" /> <classes> <class name="com.github.tests.GitHubHomePageTests" /> </classes> </test> <test name="chrome" junit="false" skipfailedinvocationcounts="false" preserve-order="true" group-by-instances="false" allow-return-values="false"> <parameter name="browser" value="chrome" /> <classes> <class name="com.github.tests.GitHubHomePageTests" /> </classes> </test> </suite> 我如何实例化驱动程序: package com.github.tests; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.testng.annotations.*; public class BaseTest { public WebDriver driver; String url = "https://github.com/"; @Parameters("browser") @BeforeClass public void SetUpTests(String browser) { if (browser.equalsIgnoreCase("firefox")) { driver = new FirefoxDriver(); } else if (browser.equalsIgnoreCase("ie")) { System.setProperty("webdriver.ie.driver", ".\\drivers\\IEDriverServer.exe"); driver = new InternetExplorerDriver(); } else if (browser.equalsIgnoreCase("chrome")) { System.setProperty("webdriver.chrome.driver", ".\\drivers\\chromedriver.exe"); driver = new ChromeDriver(); } //Navigate to url driver.navigate().to(url); //Maximize the browser window driver.manage().window().maximize(); } @AfterClass public void CleanUpDriver() throws Exception { // Quit current driver instance. try { driver.quit(); } catch (Exception ex) { throw ex; } } 如何试运行 package com.github.tests; import com.github.pageobjects.GitHubLandingPage; import org.testng.Assert; import org.testng.annotations.Test; public class GitHubHomePageTests extends BaseTest {@Test public void ExploreLinkTest() { String explorePageTitle = new GitHubLandingPage(driver) .clickGitHubExplorePage() .getGitHubExplorerPageTitle().trim(); System.out.println(explorePageTitle); Assert.assertEquals(explorePageTitle, "Explore GitHub"); } } 可在此处获取全球 Github 存储库 试试这个: <suite name="TestingSuite" preserve-order="true" thread-count="1" verbose="10"> <test name="Test1"> <classes> <class name="guiAndFunctianal.LoginFail" /> </classes> </test> <test name="Test2"> <classes> <class name="guiAndFunctianal.LoginAsManager" /> </classes> </test> <test name="Test3"> <classes> <class name="guiAndFunctianal.CreateUserTest" /> </classes> </test> </suite> 退出前关闭你的驱动程序: @测试后 公共无效退出(){ 驱动程序.close() 驱动程序.quit(); } 从 testng.xml 执行顺序测试 <suite name="Validation Suite" preserve-order="true" thread-count="1" verbose="10" parallel="false" configfailurepolicy="skip" allow-return-values="false"> <listeners> <listener class-name="ios.AllureListener"/> </listeners> <test name="Pricing Page Validations" skipfailedinvocationcounts="false" preserve-order="true" group-by-instances="false" allow-return-values="false"> <classes> <class name="ios.PricingTierPageValidations"/> </classes> </test> <!-- Test --> <test name="Application Page Validations" skipfailedinvocationcounts="false" preserve-order="true" group-by-instances="false" allow-return-values="false"> <classes> <class name="ios.ApplicationPageValidations"/> </classes> </test> </suite>

回答 4 投票 0

如何使用并行测试设置关闭 Chrome 驱动程序并清除 Selenium C# 和 SpecFlow 中的内存?

当前运行测试时,Chrome 驱动程序会堆积起来并且永远不会完全关闭。 已尝试使用: 驱动程序.关闭(); 驱动程序.退出(); 驱动程序.Dispose(); 与此讨论相关 但是 Chrome 驱动...

回答 2 投票 0

selenium ConnectionRefusedError:Python 3 中的 [WinError 10061]

我有一个Python程序,它使用selenium来访问站点并获取元素的值。现在,我有一个字典列表,每个字典都有一个 url 参数。我遍历列表并转到你的...

回答 2 投票 0

Python Selenium - 清除 chrome 缓存

我正在尝试使用 selenium 从 chrome 驱动程序中清除缓存。 下面的代码工作了一天,现在由于某种原因停止工作了。它重定向到 ClearBrowserData url,b...

回答 2 投票 0

WebDriverManager - '远程服务器返回错误:(404) 未找到。'

我正在使用 Selenium WebDriverManager nuget 包来管理驱动程序版本。当我尝试获取边缘驱动程序时: var driverManager = new DriverManager(); driverManager.SetUpDriver(新的 EdgeConfi...

回答 3 投票 0

如何在 repl.it 上运行 chromedriver

我基本上想在repl.it上使用selenium,但不知道该怎么做。我尝试将 chromedriver 安装到 repl.it 但仍然收到此错误: 回溯(最近一次调用最后一次): 文件“...

回答 2 投票 0

Allure/TestNG/Maven:org.testng.ITestNGListener:提供程序io.qameta.allure.testng.AllureTestNg无法实例化

我正在尝试将 Allure 集成到我的 Maven 项目中。这是我到目前为止所做的: - 安装命令行并设置类路径。作为验证的一部分,当我在控制台中运行 allure --version 时...

回答 4 投票 0

如何在 C# 中引用另一个类的方法?

所以我将方法“Driver”从一个类引用到另一个类, 代码示例: 类程序{ 公共静态无效运行(){ IWebDriver 驱动程序 = 新的 ChromeDriver; } 公共...

回答 2 投票 0

如何使用 Java 在 Selenium WebDriver 中查找整个网站的损坏图像?

我想找到整个网站的损坏图像。我只能对单个页面执行此操作,例如:主页。 我们如何为整个网站做到这一点?

回答 5 投票 0

在python中使用selenium获取所有href链接

我正在Python中练习Selenium,我想使用Selenium获取网页上的所有链接。 例如,我想要 http:// 上所有

回答 11 投票 0

如何使用 Selenium 和 Python 执行拖放

下面我给出了我的代码: 从硒导入网络驱动程序 从 selenium.webdriver.common.keys 导入密钥 从 selenium.webdriver 导入 ActionChains 从 selenium.webdriver.common.by 导入 乙...

回答 4 投票 0

如何阻止selenium打印WebDriver管理器启动日志?

当我启动新的硒驱动程序时,我收到一条消息: ====== WebDriver 管理器 ====== 当前的铬版本是 90.0.4430 获取 90.0.4430 chromium 的最新 chromedriver 版本 司机[/ro...

回答 6 投票 0

如何在Linux上使用selenium和php?

我想在centos 6.5上安装selenium,然后通过PHP脚本中的API使用它。 Selenium 测试脚本将记录在另一个系统上,这些 Selenium 测试脚本将作为输入给出......

回答 2 投票 0

maven 编译错误 - 无法执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile

我正在尝试为我的自动化测试运行 mvn clean 编译测试并获取 Maven 编译错误消息。 我在这里发布错误消息和我的 pom 文件。 我正在使用黄瓜框架...

回答 4 投票 0

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