我正在尝试使用Chrome WebDriver登录网站。唯一的问题是,放置用户名的文本框似乎不可见。当我运行代码时,如果我手动单击用户名所在的框,则程序将不会出现问题。如何使该元素可见,以便可以单击它?
当代码到达username.Click();
时,我得到“元素不可见”。
static void Main(string[] args)
{
var driver = new ChromeDriver();
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
driver.Navigate().GoToUrl("http://contoso.com/");
var loginPopUp = wait.Until(d => driver.FindElement(By.XPath("//*[@id='user-menu']/li[2]/a")));
loginPopUp.Click();
var username = wait.Until(d => driver.FindElement(By.XPath("//*[@id='login']")));
const string script = "document.getElementById('login').style.visibility='visible';";
driver.ExecuteScript(script);
username.Click();
username.Clear();
username.SendKeys("[email protected]");
var password = wait.Until(d => driver.FindElement(By.XPath("//*[@id='password']")));
password.SendKeys("thepassword");
var login = wait.Until(d => driver.FindElement(By.XPath("//*[@id='popup-body']/div/div[3]/div[5]/a")));
login.Click();
}
参考方案
用户名框不可见。出现在页面上需要时间吗?
您可以使用它使元素可见。
对于google.com徽标:
隐藏Google徽标
document.getElementById('hplogo').style.display='none'
使Google徽标可见
document.getElementById('hplogo').style.display='block'
捕获测试中的屏幕截图以调试问题。
如何在没有for循环的情况下在Javascript中使用Django模板标签 - javascript我想在JavaScript中使用模板变量:我的问题是在javascript代码中使用for循环,for循环之间的所有事情都会重复..但我不想要....下面粘贴了我的代码..有人可以告诉我更好的方法吗这..因为这看起来很丑..这是我的代码: {% block extra_javascript %} <script src="/static/js…
在xpath中选择多个条件 - php我正在尝试使用来自高尔夫比赛的xml提要,以显示每个高尔夫球手在高尔夫球场上的位置。目前,我想展示符合两个条件的所有高尔夫球手(排在前25名,以及所有加拿大高尔夫球手)。这是xml提要的示例。<GolfDataFeed Type="Leaderboards" Timestamp="3/21/2012 9:18:09 PM&…
Mongo抛出“元素名称'名称'无效”异常 - c#我正在更新一个简单的字段。var filterDocument = new BsonDocument { { "name", "alice" } }; var newDocument = new BsonDocument { { "name", "Alice" } }; coll…
T-SQL等价的正则表达式'\ b' - c#我正在将利用regex的CLR函数转换为SQL函数。我知道SQL Server并不完全支持正则表达式,但是我只需要一种情况就可以搜索单词。搜索字段值:{"Id":1234, "Title": "The quick brown"}.NET中的正则表达式模式:'\b' + '…
将字符串分配给numpy.zeros数组[重复] - pythonThis question already has answers here: Weird behaviour initializing a numpy array of string data (4个答案) …