我使用c# selenium在网站上查看电子邮件,如果您有电子邮件,如果没有电子邮件,则添加类。
Html
<div class="i24fI">
<span class="coreSpriteInputError gBp1f"></span>
</div>代码
IWebDriver driver = new ChromeDriver();
for (int i = 0; i < Convert.ToInt32((mailCount.Text)); i++)
{
string email = helper.RastgeleKelime();
driver.Navigate().GoToUrl("https://www.xxxxxxx.com/accounts/emailsignup/");
Thread.Sleep(2000);
IWebElement username = driver.FindElement(By.Name("emailOrPhone"));
IWebElement Fullname = driver.FindElement(By.Name("fullName"));
username.SendKeys("cccc@hotmail.com");
Fullname.SendKeys("ssssss");
Thread.Sleep(2000);
IWebElement error = driver.FindElement(By.CssSelector("div.i24fI span.coreSpriteInputError"));
if (error != null)
{
avMailList.Items.Add(email.ToString());
}
else
{
mailList.Items.Add(email.ToString());
}
Thread.Sleep(2000);我查过上面的情况,但是
IWebElement error = driver.FindElement(By.CssSelector("div.i24fI span.coreSpriteInputError"));如果它不存在,它会产生一个错误,因为它无法在其控件中找到元素。
发布于 2022-06-14 06:01:16
您可以使用FindElements获取IWebElement的集合,并使用FirstOrDefault()从Linq检查第一个元素的值。
using System.Linq
ReadOnlyCollection<IWebElement> errors = driver.FindElements(By.CssSelector("div.i24fI span.coreSpriteInputError"));
IWebElement error = errors.FirstOrDefault();现在error将是IWebElement或null。
https://stackoverflow.com/questions/72609019
复制相似问题