gpt4 book ai didi

c# - 使用 C# 在 Selenium 中处理窗口弹出窗口

转载 作者:太空宇宙 更新时间:2023-11-03 15:17:09 28 4
gpt4 key购买 nike

我正在尝试在弹出窗口中传递名字、姓氏等值。我附上页面的截图。页面后面的Html代码:

<input type="text" name="lastname" value="" onblur="capAll(this);" class="critfont" size="22" maxlength="16">

我尝试检查它并复制 Xpath,但它找不到元素并抛出异常。

我的 C# 代码是:

var wa = new WebDriverWait(Driver.Instance, TimeSpan.FromSeconds(10));
var LN = wa.Until(ExpectedConditions.ElementIsVisible(By.XPath("//*[@id='pageBodyNoHeader']/form/table[2]/tbody/tr[1]/td[2]/input")));
LN.Click();
LN.SendKeys("Aerere")

当我运行这段代码时,它向我抛出一个异常,它在 10 秒后超时。

我也试过这段代码:

Thread.Sleep(1000);
Driver.Instance.FindElement(By.XPath("//*[@id='pageBodyNoHeader']/form/table[2]/tbody/tr[1]/td[2]/input")).Click();
Driver.Instance.FindElement(By.XPath("//*[@id='pageBodyNoHeader']/form/table[2]/tbody/tr[1]/td[2]/input")).SendKeys("Whatever");

这里抛出的异常是“无法找到字段名称”。

有人可以帮忙吗?谢谢enter image description here

为了切换到弹出窗口,我使用了以下代码:

Driver.Instance.SwitchTo().Window(Driver.Instance.WindowHandles.Last());
Driver.Instance.Manage().Window.Maximize();

最佳答案

我认为您的 xpath 可能有问题,您应该尝试使用 By.Name 如下:-

var wa = new WebDriverWait(Driver.Instance, TimeSpan.FromSeconds(10));
var LN = wa.Until(ExpectedConditions.ElementExists(By.Name("lastname")));
LN.Click();
LN.SendKeys("Aerere");

注意:- 确保此元素不在任何 frameiframe 内。如果它在里面,那么您需要在找到元素之前切换 frameiframe :- Driver.Instance.SwitchTo().Frame("frame name or id");

希望对您有所帮助...:)

关于c# - 使用 C# 在 Selenium 中处理窗口弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38639191/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com