Questions tagged «selenium-webdriver»

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


14
使用Python在Selenium WebDriver中获取WebElement的HTML源
我正在使用Python绑定来运行Selenium WebDriver: from selenium import webdriver wd = webdriver.Firefox() 我知道我可以像这样抓取网络元素: elem = wd.find_element_by_css_selector('#my-id') 我知道我可以通过... wd.page_source 但是无论如何,有没有获得“元素来源”? elem.source # <-- returns the HTML as a string Python的Selenium Webdriver文档基本上不存在,我在代码中看不到任何能够启用该功能的东西。 对访问元素(及其子元素)的HTML的最佳方法有何想法?

30
调试“元素不可点击”错误
我只能在Chrome浏览器中看到。 完整的错误消息显示为: “ org.openqa.selenium.WebDriverException:元素在点(411,675)不可点击。其他元素将获得点击:...” “将获得点击”的元素位于相关元素的侧面,而不是在其顶部并且不重叠,也不在页面上移动。 我曾尝试添加偏移量,但这也不起作用。该项目位于显示的窗口中,无需滚动。


10
如何在Selenium Webdriver(Python)中找到包含特定文本的元素?
我正在尝试使用Selenium(使用Python接口并在多个浏览器上)测试复杂的javascript接口。我有许多形式的按钮: <div>My Button</div> 我希望能够基于“我的按钮”(或不区分大小写的部分匹配项,例如“我的按钮”或“按钮”)搜索按钮 我发现这非常困难,在某种程度上我感觉自己缺少明显的东西。到目前为止,我最好的是: driver.find_elements_by_xpath('//div[contains(text(), "' + text + '")]') 但是,这是区分大小写的。我尝试过的另一件事是遍历页面上的所有div,并检查element.text属性。但是,每次您得到以下形式的情况: <div class="outer"><div class="inner">My Button</div></div> div.outer还使用“我的按钮”作为文本。为了解决这个问题,我尝试查看div.outer是否是div.inner的父级,但无法弄清楚该怎么做(element.get_element_by_xpath('..')返回元素的父级,但是测试不等于div.outer)。此外,至少使用Chrome网络驱动程序,迭代页面上的所有元素似乎真的很慢。 有想法吗? 编辑:这个问题有点模糊。在此处询问(并回答)一个更具体的版本:如何在Selenium WebDriver中(通过Python api)获取元素的文本而不包含子元素文本?

9
有没有一种方法可以使用Selenium WebDriver中的JavaScript通过XPath获取元素?
我正在寻找类似的东西: getElementByXpath(//html[1]/body[1]/div[1]).innerHTML 我需要使用JS获取元素的innerHTML(要在Selenium WebDriver / Java中使用它,因为WebDriver本身无法找到它),但是如何? 我可以使用ID属性,但并非所有元素都具有ID属性。 [固定] 我正在使用jsoup在Java中完成它。这符合我的需求。



13
如何使用Python使用Selenium选择下拉菜单值?
我需要从中选择一个元素 下拉菜单中。 例如: <select id="fruits01" class="select" name="fruits"> <option value="0">Choose your fruits:</option> <option value="1">Banana</option> <option value="2">Mango</option> </select> 1)首先,我必须单击它。我这样做: inputElementFruits = driver.find_element_by_xpath("//select[id='fruits']").click() 2)之后,我必须选择一个好的元素,让我们说Mango。 我尝试这样做,inputElementFruits.send_keys(...)但是没有用。

6
如何在Chrome Developers工具或Firefox的Firebug中验证XPath表达式?
如何验证我的XPath? 我正在使用Chrome开发人员工具检查元素并形成XPath。我使用Chrome插件XPath Checker进行了验证,但是它并不总是能给我结果。有什么更好的方法来验证我的XPath。 我也尝试过使用Firebug来检查错误并使用FirePath进行验证。但是Firepath也会验证XPath。 我的最后一个选择是使用Selenium WebDriver确认我的XPath。


18
使用Selenium WebDriver测试元素是否存在?
有没有一种方法可以测试元素是否存在?任何findElement方法都将以异常结尾,但这不是我想要的,因为它可能是一个元素不存在并且没关系,这不是测试失败,所以异常不能成为解决方案。 我发现了这篇文章:Selenium c#Webdriver:等待元素出现, 但这是针对C#的,我不是很擅长。谁能将代码翻译成Java?抱歉,我在Eclipse中进行了尝试,但我没有将其正确地插入Java代码中。 这是代码: public static class WebDriverExtensions{ public static IWebElement FindElement(this IWebDriver driver, By by, int timeoutInSeconds){ if (timeoutInSeconds > 0){ var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeoutInSeconds)); return wait.Until(drv => drv.FindElement(by)); } return driver.FindElement(by); } }


13
如何在Chrome中运行Selenium WebDriver测试用例?
我试过了 WebDriver driver = new ChromeDriver(); 但我得到的错误 测试失败:setUp(com.TEST):必须通过webdriver.chrome.driver系统属性设置驱动程序可执行文件的路径;否则,请执行以下操作:有关更多信息,请参见此处的代码。可以从链接下载最新版本 如何使Chrome浏览器测试Selenium-WebDriver测试用例?

13
等待特定条件时通过WebDriver刷新网页
我正在寻找一种更优雅的方法来在测试过程中刷新网页(我使用Selenium2)。我只是发送F5键,但我想知道驱动程序是否具有刷新整个网页的方法,这是我的代码 while(driver.findElements(By.xpath("//*[text() = 'READY']")).size() == 0 ) driver.findElement(By.xpath("//body")).sendKeys(Keys.F5); //element appear after text READY is presented driver.findElement(By.cssSelector("div.column a")).click(); 也许是在手动刷新的页面上查找元素的更好的解决方案

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.