Questions tagged «webdriver»

WebDriver是一个用于控制Web浏览器的API,可模拟真实用户。它主要用于自动化测试。WebDriver具有多种语言绑定和驱动程序(允许控制各种浏览器)。如果您的问题仅针对其中一个,请确保还包括适当的标签。

17
Selenium WebDriver:等待带有JavaScript的复杂页面加载
我有一个Web应用程序可以使用Selenium进行测试。页面加载时运行着许多JavaScript。 该JavaScript代码编写得不太好,但是我什么也不能更改。因此,使用findElement()方法等待元素出现在DOM 中不是一个选择。 我想在Java中创建一个通用函数以等待页面加载,可能的解决方案是: 运行JavaScript脚本WebDriver并将结果存储document.body.innerHTML在字符串变量中body。 将body变量与的早期版本进行比较body。如果它们相同,则设置递增计数器,notChangedCount否则设置notChangedCount为零。 等待一小段时间(例如50毫秒)。 如果页面有一段时间没有变化(例如500毫秒),notChangedCount >= 10则退出循环,否则循环至第一步。 您认为这是有效的解决方案吗?


15
如何在Java中让Selenium-WebDriver等待几秒钟?
我正在研究Java Selenium-WebDriver。我加了 driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS); 和 WebElement textbox = driver.findElement(By.id("textbox")); 因为我的应用程序需要几秒钟来加载用户界面。所以我设置了2秒的隐式等待。但是我找不到元素文本框 然后我添加 Thread.sleep(2000); 现在工作正常。哪一个是更好的方法?

10
Selenium:FirefoxProfile异常无法加载配置文件
对于这个先前的问题,我将Selenium更新到了2.0.1版本,但是现在我又遇到了另一个错误,即使配置文件位于以下位置/tmp/webdriver-py-profilecopy: 在执行中,文件“ /home/sultan/Repository/Django/monitor/app/request.py”,第236行 浏览器= Firefox(配置文件) __init__中的文件“ /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py”,第46行 self.binary,超时), __init__中的文件“ /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.py”,第46行 self.binary.launch_browser(self.profile) 在launch_browser中的第44行,文件“ /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py” self._wait_until_connectable() _wait_until_connectable中的文件“ /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py”,第87行 引发WebDriverException(“无法加载配置文件。配置文件目录:%s”%self.profile.path) selenium.common.exceptions.WebDriverException:无法加载配置文件。个人档案目录:/ tmp / webdriver-py-profilecopy 怎么了?我该如何解决这个问题?

3
CSS选择器(id包含文本的一部分)
我有个问题。我有这样的元素: <a> id = someGenerated的元素Some:Same:0:name <a> id = someGenerated的元素Some:Same:0:surname <a> id = someGenerated的元素Some:Same:1:name <a> id = someGenerated的元素Some:Same:1:surname 我需要CSS选择器来获取名称。问题是我不知道如何获得它。我尝试过a[id*='Some:Same']-它返回了所有<a>元素。之后,我可以获得ID以名称结尾的元素。但是我不喜欢这个主意。我认为可以使用其他选择器来完成。

8
Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击
我使用了明确的等待,并发出警告: org.openqa.selenium.WebDriverException:元素在点(36,72)处不可单击。其他元素将获得点击:...命令持续时间或超时:393毫秒 如果我使用Thread.sleep(2000)我不会收到任何警告。 @Test(dataProvider = "menuData") public void Main(String btnMenu, String TitleResultPage, String Text) throws InterruptedException { WebDriverWait wait = new WebDriverWait(driver, 10); driver.findElement(By.id("navigationPageButton")).click(); try { wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector(btnMenu))); } catch (Exception e) { System.out.println("Oh"); } driver.findElement(By.cssSelector(btnMenu)).click(); Assert.assertEquals(driver.findElement(By.cssSelector(TitleResultPage)).getText(), Text); }


10
如何使用Selenium WebDriver C#从下拉列表中选择一个选项?
我正在尝试选择一个选项进行网络测试。可以在此处找到一个示例:http : //www.tizag.com/phpT/examples/formex.php 除了选择选项以外,其他所有功能都很好。如何通过值或标签选择选项? 我的代码: using OpenQA.Selenium.Firefox; using OpenQA.Selenium; using System.Collections.ObjectModel; using System.Text.RegularExpressions; using System.Threading; using System.Diagnostics; using System.Runtime.InteropServices; class GoogleSuggest { static void Main() { IWebDriver driver = new FirefoxDriver(); //Notice navigation is slightly different than the Java version //This is because 'get' is a keyword in C# driver.Navigate().GoToUrl("http://www.tizag.com/phpT/examples/formex.php"); …


3
如何从硒中获取元素的属性?
我正在Python中使用Selenium。我想获取.val()一个<select>元素的,并检查它是否是我所期望的。 这是我的代码: def test_chart_renders_from_url(self): url = 'http://localhost:8000/analyse/' self.browser.get(url) org = driver.find_element_by_id('org') # Find the value of org? 我怎样才能做到这一点?Selenium文档似乎有很多关于选择元素的内容,但是与属性无关。

10
在Chrome浏览器中运行WebDriver时,即使浏览器正常启动,也会出现消息“仅允许本地连接”
当我使用WebDriver运行Chrome浏览器时,我在控制台上收到以下消息。请让我知道如何解决。 “在端口22582上启动ChromeDriver(v2.10.267521)”“仅允许本地连接。” 这是我的示例代码: public class Browserlaunch { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\\chromedriver_win32 \\chromedriver.exe"); WebDriver driver = new ChromeDriver() ; driver.get("http://webdunia.com"); driver.close(); driver.quit(); } }

4
WebDriver-使用Java等待元素
我正在寻找类似于waitForElementPresent在单击元素之前检查元素是否已显示的内容。我认为可以通过完成此操作implicitWait,因此我使用了以下方法: driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); 然后点击 driver.findElement(By.id(prop.getProperty(vName))).click(); 不幸的是,有时它等待元素,有时不等待。我寻找了一段时间,找到了这个解决方案: for (int second = 0;; second++) { Thread.sleep(sleepTime); if (second >= 10) fail("timeout : " + vName); try { if (driver.findElement(By.id(prop.getProperty(vName))) .isDisplayed()) break; } catch (Exception e) { writeToExcel("data.xls", e.toString(), parameters.currentTestRow, 46); } } driver.findElement(By.id(prop.getProperty(vName))).click(); 它等待一切正常,但在超时之前必须等待10次5、50秒。有点多。因此,我将隐式等待时间设置为1秒,直到现在一切都还不错。因为现在有些事情在超时之前等待10秒,而另一些事情在1秒之后超时。 如何覆盖代码中存在/可见的等待元素?任何提示都是可观的。


8
检查Python Selenium是否存在元素
我有一个问题-我正在使用Selenium(firefox)Web驱动程序打开网页,单击一些链接等,然后捕获屏幕截图。 我的脚本可以从CLI正常运行,但是通过cronjob运行时,它并没有通过第一个find_element()测试。我需要添加一些调试,或一些帮助我弄清为什么失败的东西。 基本上,我必须先单击“登录”锚点,然后才能进入登录页面。元素的构造为: <a class="lnk" rel="nofollow" href="/login.jsp?destination=/secure/Dash.jspa">log in</a> 我正在通过LINK_TEXT方法使用find_element: login = driver.find_element(By.LINK_TEXT, "log in").click() 我有点Python Noob,所以我在和这种语言作斗争... A)如何检查链接是否已被python实际拾取?我应该使用try / catch块吗? B)是否有比LINK_TEXT更好/更可靠的方法来定位DOM元素?例如,在JQuery中,可以使用更具体的选择器$('a.lnk:contains(login)')。do_something(); 我已经解决了主要问题,这只是手指问题-我用错误的参数调用脚本-简单的错误。 我仍然想要一些有关如何检查元素是否存在的指针。同样,使用隐式/显式Waits的示例/解释,而不是使用糟糕的time.sleep()调用。 干杯,ns

11
如何使用WebDriver检查元素是否可见
随着WebDriver硒2.0a2我有麻烦检查如果一个元素是可见的。 WebDriver.findElement返回WebElement,不幸的是没有提供isVisible方法。我可以使用WebElement.clear或WebElement.click两者都抛出一个来解决这个问题ElementNotVisibleException,但这感觉很脏。 还有更好的主意吗?
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.