Selenium WebDriver JS>找不到元素&隐式等待问题
<Selenium WebDriver JS> Can't find element & implicit wait problems
我一直试图在JavaScript中编写一个Selenium脚本,将填写我的网站上的'email'字段,但它一直告诉我"元素未找到"…
我正在寻找这个元素:
<input type="email" placeholder="Email" name="email" class="form-control sweep" data-radium="true" data-reactid=".btcvpfkiyo.0.$/=10=22.0.0.$=12.0.0.0.$=10.$=11.0.$/=10.$=10.0" disabled="">
首先进入页面,然后等待几秒钟,然后尝试查找元素:
driver.get('www.mysite.com').then(function() {
driver.manage().timeouts().implicitlyWait(10000);
driver.findElement({name:'email'})
.then(function(present) {
if (present) {
console.log("Found");
}
});
});
我试过用很多方法访问这个元素…以下是我尝试过的:
driver.findElement(By.xpath("//input[@name='email']"))
driver.findElement(By.css("input[type='email']"))
driver.findElement(By.css("input[name='email']"))
driver.findElement({name:'email'})
每一个都给了我相同的错误:no such element
奇怪的是,当我使用jquery使用js工具选择元素时,它会立即找到该元素。上面的每个命令都在jquery中进行了测试,并且正常工作
我认为错误可能是以下其中之一:
- 也许我的隐式等待不工作(它确实等待10秒,但我不确定它是否试图立即找到元素)。我也试过
- 也许我的选择器是错误的
implicitlyWait(10000).then
,但也许我做错了- Selenium Webdriver v3.0.0-beta-2
- 我使用的webdriver从https://github.com/SeleniumHQ/selenium。
- API在这里:Selenium Webdriver API
- 节点v4.4.4
你已经尝试了所有可能的方法来寻找元素,但你没有寻找frame/iframe
。
在任何frame/iframe
中都有可能存在所需的元素。
如果存在frame/iframe
,则需要在找到所需元素之前将frame/iframe
切换为WebDriver#switchTo()
:-
driver.switchTo().frame("frame/iframe id or name")
//Now find desire element inside frame/iframe
//After doing all stuff inside frame/iframe switch back to default content
driver.switchTo().defaultContent()
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 参数变量出现ngTable指令问题
- 剑道网格jQuery动画()问题
- 如何解决等待多个请求以javascript发送响应的问题
- 反应本机异步和等待问题
- Javascript 等待问题
- Parse.com等待异步出现问题
- HTMLUnit等待JS问题
- jquery实现的请等待对话框- safari特有的问题
- WshShell运行不等待,但执行状态更新(运行vs执行问题)
- 让Angular-JS在继续之前等待异步调用有问题
- angular foreach等待http调用的问题
- Javascript Promises (Q)不会等待下一个问题被解决
- Selenium WebDriver JS>找不到元素&隐式等待问题
- 在等待来自对话框的用户反馈时出现流量控制问题
- OBJLoader出现异步问题-等待XHR完成加载
- 在jQuery/JavaScript中使用承诺时遇到问题.脚本似乎没有等待
- 试图等待async执行的setTimeout问题