此代码中有两个错误 第一次超时 第二个是找不到
我尝试了太多
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Selenium_Test_Webdriver {
class Program {
static void Main(string[] args) {
IWebDriver Driver = new FirefoxDriver ();
Driver.Url = "https://www.facebook.com/";
Driver.Manage().Window.Maximize();
//Driver.Manage().Timeouts().ImplicitWait(TimeSpan.FromSeconds(10));
Driver.FindElement(By.Id("email")).SendKeys("");
Driver.FindElement(By.Id("pass")).SendKeys("Password" + Keys.Enter);
//Driver.FindElement(By.XPath("//a[@title='Arslan Khan Afridi']")).Click();
Driver.FindElement(By.XPath("//span[@class='_1vp5 f_click']")).Click(); This shows that unable to locate path
Driver.FindElement(By.XPath("")).Click();
}
}
}
无法找到。
答案 0 :(得分:0)
这个print(func(1))
# ([1],)
print(func(2))
# ([1, 2],)
类名似乎是动态的,即,每次您打开页面时它都会更改。
如果您的目标是登录Facebook,我建议您坚持使用_1vp5 f_click
attribute,并仔细查看其名称,这是简化自动化测试的唯一标识符。
所以改变这个:
data-testid
对此:
Driver.FindElement(By.XPath("//span[@class='_1vp5 f_click']")).Click();
您还可以考虑使用WebDriverWait类,这样您将充满信心,即使Selenium无法立即使用,Selenium仍会寻找该元素,即,可以使用{{ 3}}个呼叫
因此将以下行添加到“使用”块中:
Driver.FindElement(By.XPath("//input[@data-testid='royal_login_button']")).Click();
以及要测试的以下几行:
using SeleniumExtras.WaitHelpers;
上述的WaitHelpers命名空间可通过AJAX包获得