【问题标题】:Write someting in a <input> tag in html with selenium c# doesn't work用硒在html中的<input>标签中写一些东西c#不起作用
【发布时间】:2021-11-13 22:25:00
【问题描述】:

我想用 html 填写来自网站的输入。

网站部分 (https://account.protonmail.com/signup?language=de) 如下所示:

<div class="flex-item-fluid">
<input autocomplete="username" autocapitalize="off" autocorrect="off" spellcheck="false" aria-invalid="false" id="username" aria-describedby="id-1" class="w100 inputform-field" value="">
</div>

这是我的 c# selenium 部分:

var elem = driver.FindElement(By.XPath("//*[@id='username']")).SendKeys("test");
// I also tried this:
var elem = driver.FindElement(By.XPath("//input[@id='username']")).SendKeys("test");

我希望有人可以帮助我。

【问题讨论】:

    标签: c# html selenium automation


    【解决方案1】:

    用户名字段iframe

    首先使用下面的xpathswitch to iframe,然后您可以继续使用其余代码:

    //iframe[@src]
    

    类似这样的:

    IWebElement iframe = driver.FindElement(By.Xpath("//iframe[@src]"));
    driver.SwitchTo().Frame(iframe);
    

    另外,我看到用户名字段有多个元素。永远记住,我们应该优先考虑css_selector 而不是xpath

    用户名字段可以用这个 css 定位:

    body.color-norm.bg-norm input[id='username']
    

    所以在代码中是这样的:

    var elem = driver.FindElement(By.CssSelector("body.color-norm.bg-norm input[id='username']")).SendKeys("test");
    var pass = driver.FindElement(By.CssSelector("input[id='password']")).SendKeys("password here");
    

    【讨论】:

      【解决方案2】:

      您正在查看的元素位于 iframe 中,因此请先切换框架。

      iframe 的 xPath

      //iframe[contains(@src,'Name=username')]
      

      然后使用下面的xPath找到元素,

      //input[@id='username']
      

      完成的代码

      driver.switchTo().frame(driver.findElement(By.xpath("//iframe[contains(@src,'Name=username')]")));
      
      var elem = driver.FindElement(By.XPath("//*[@id='username']")).SendKeys("test");
      

      【讨论】:

        【解决方案3】:

        你可以试试这个

        var elem = driver.FindElement(By.CssSelector(".w100.inputform-field")).SendKeys("")
        

        这里我们按类名搜索,而不是输入名。祝你好运。

        如果它对你有用。有用的

        【讨论】:

          猜你喜欢
          • 2013-07-18
          • 1970-01-01
          • 1970-01-01
          • 2014-11-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-07-06
          相关资源
          最近更新 更多