Python带星号的密码字段

2024-10-01 15:39:39 发布

您现在位置:Python中文网/ 问答频道 /正文

单击“我的路由器web界面”页面的密码字段时出现一些问题。下面是两个例子

答:我没有收到任何错误,但是密码字段并不像我手动单击时那样显示密码

我得到了一个不可点击的元素,或者有一点变化的元素不可交互

我的问题是我在这里遗漏了什么。 下面是页面中的元素

<div class="controls">
    <input type="password" id="wrlPwd" name="wrlPwd" class="validatebox input-large" maxlength="63" data-options="{&quot;type&quot;:&quot;ssidPwd&quot;,&quot;args&quot;:[8,63]}">
</div>

下面是代码的两部分

答:PsWrD = browser.find_element_by_class_name('control-label')

B:PsWrD = browser.find_element_by_xpath('//div[@id="id="wrlPwd"" and @class="controls"]') browser.execute_script("arguments[0].click();", PsWrD)

目标不是查看密码,而是突出显示文本字段以更改密码。我尝试了一些其他的东西,比如css和name。我可以在任何地方导航,但我被这一点困住了


Tags: namedivbrowserid元素密码inputtype
2条回答

您尝试单击的元素为

<input type="password" id="wrlPwd" name="wrlPwd" class="validatebox input-large" ...>

如果可用,请始终以ID或名称开头。这一个有两个,所以让我们使用ID

browser.find_element_by_id("wrlPwd").click()

您使用的定位器不正确

答:在您发布的输入元素上没有类control-label。类是class="validatebox input-large",类是validateboxinput-large

B:这个也有同样的问题。。。你把元素搞混了。您正在使用的XPath有几个问题

  1. 您已经在其中损坏了两次id,@id="id="wrlPwd"",这应该引发一个无效的XPath错误,而DIV没有该id,而输入没有
  2. 第二部分and @class="controls"对于DIV是正确的,但是您希望单击输入

此外,如果存在计时问题,您可能希望添加一个WebDriverWait,以等待输入可单击。有关更多信息,请参见the docs

这里的问题是我的HTML知识。问题是我的元素在iframe中,因此无法找到它。要解决此问题,我使用了:

WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.ID,"membeeLoginIF")))
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.textboxWaterMark#txtUserName"))).send_keys("Jeff")```

一旦我切换到iframe,我发现它没有任何问题

相关问题 更多 >

    热门问题