IWebElement在使用PageFactory初始化时没有属性
本文关键字:属性 初始化 PageFactory IWebElement | 更新日期: 2023-09-27 18:14:27
当我像这样声明我的IWebElement时:
[FindsBy(How = How.CssSelector, Using = "input#raffle_submit")]
private IWebElement _buyNowButton;
并在类构造函数中使用PageFactory初始化它:
PageFactory.InitElements(Driver, this);
然后,当我在任何方法中设置断点以查看元素的属性时,我在该元素中看不到任何属性:
public CartObj ClickBuyNowButton()
{
_buyNowButton.Click(); //here is my break point
}
我看到的唯一属性是:- Non-Public members
: http://prntscr.com/8k90r4
那么,所有必须在IWebElement中的属性,如"启用","显示"等都在哪里?
更多的说:我没有使用这个元素的任何问题,我可以点击它,我可以发送密钥给它,但当我使用下一个JavaScript代码它告诉我,参数是错误的(但它之前工作得很好):
((IJavaScriptExecutor)Driver).ExecuteScript("arguments[0].scrollIntoView();", webElement);
执行以上JS代码后出现的错误:
Additional information: Argument is of an illegal
typeOpenQA.Selenium.Support.Events.EventFiringWebDriver+EventFiringWebElement
我确定它与WebDriver版本有关。
所以我当前的WebDriver版本是2.47.0
<<p> ChromDriver版本/strong> 2.19回答您的第一个问题:您在调试器中看到的实际上只是一个代理对象。PageFactory
用代理初始化_buyNowButton
,该代理只有在脚本中使用它时才会被解析。因此,除非您实际使用它,否则您不会在调试器中看到任何像Displayed
或Enabled
这样的属性。
关于你的第二个问题:我现在不能用Selenium 3和最新的ChromeDriver重新创建,但它可能是一个错误回到一天。