我查找了一些类似的问题,并尝试在定位元素之前实现一些代码,但是:
这是运行良好的代码:
driver.Url = "http://automationpractice.com/index.php";
var newSearch = driver.FindElement(By.Id("search_query_top"));
newSearch.SendKeys("top");
var searchConfrim = driver.FindElement(By.Name("submit_search"));
searchConfrim.Click();
}
}
}
namespace ConsoleApplication_training
{
class Program
{
static void Main(string[] args)
{
Console.ReadKey();
var page = new WebPage();
page.ClickButton();
}
}
internal class WebPage
{
private IWebDriver driver;
private string websiteUrl;
public IWebDriver Driver
{
get { return new ChromeDriver(); }
}
public string WebsiteUrl
{
get { return "http://automationpractice.com/index.php"; }
set
{
websiteUrl = value;
}
}
public WebPage()
{
Driver.Navigate().GoToUrl(WebsiteUrl);
Driver.SwitchTo().DefaultContent();
Driver.FindElement(By.Id("search_query_top"));
}
public void ClickButton()
{
Driver.FindElement(By.Name("submit_search")).Click();
}
}
}
有谁能帮助解决这个问题或指出问题的原因吗?
问题的根源是对ChromeDriver生存期的误解。在接下来的代码行中,您将为每次调用driver属性创建一个新的驱动程序实例。
public IWebDriver Driver
{
get { return new ChromeDriver(); }
}
对于您的示例,您只需创建一次ChromeDriver实例,例如,使用私有属性:
private readonly IWebDriver _driver = new ChromeDriver();
public IWebDriver Driver => _driver;
但是如果您有多个页面,这种方法会导致其他错误。因此,最好单独创建一个web驱动程序实例,并通过构造函数将其传递给页面。
我正在使用Java和Firefox和Firebug,我无法找到第二页上的元素。例如,如果我登录gmail,我就无法找到并点击已发送邮件或下一页上的任何其他按钮。 我尝试使用xpath(绝对值和相对值),但每次我都得到一个错误,即找不到元素。使用代码,我可以成功登录,但一旦页面加载,就会出现错误“元素未找到”。 请提出任何解决方案
我将硒与python中的Chrome驱动程序一起使用。 我的问题是,硒给我一个错误,因为我试图访问铬下载页面上的元素(铬://下载)。例如,我试图获取文件url"http://file.jpg"。 但当我试图通过其id获取元素时,我得到了一个异常。 代码: 例外情况: 通过 使用 javascript 对我也不起作用。为什么当我可以在浏览器中看到元素时,我会收到 ?
当我试图将元素放入元素中时,我面临一个问题。我尝试了两种方法来实现这一点,但不幸的是没有成功。 上面的代码获取所有DOM元素列表。 方法1: 当我尝试这个方法时,它总是返回第一个元素的文本,而不是相应的元素文本。 在搜索时,我发现了一个链接,有人问了和我一样的问题。 Selenium Webdriver在子元素中查找元素 当我尝试答案时,它给了我一个空白数组。 结果: 请建议我如何实现这一点,如何
编辑:有人在评论中要求我展示我是如何定义链接的:
环境:Eclipse-Java-Junit-Firefox web driver 屏幕截图网址 : https://www.dropbox.com/s/26fl2l1y1mkpxiz/Screenshot 2014-01-06 01.52.43.png 我试图测试一个网页,但找不到元素(看起来像按钮)。Firebug的xpath是:<code>/*〔@id='DERIVED_REGFRM1_LIN
我想通过C#使用Selenium web驱动程序定位BNK1的值。我发现我的本地网站有2个iframe。我已经尝试改变,使我的iframe更改为详细的框架,为我获得我的值BNK1在表中。我不知道我无法使用XPath找到iframe的问题是怎么回事。 但我出现错误“没有这样的元素:无法定位元素:{”method“:”XPath“,”selector“:”//IFRAME[@class='tabcon