javascript - 单击 selenium webdriver 中的样式 ="display: block;"

标签 javascript html css selenium-webdriver hidden-field

我正在尝试点击样式为 style="display: block;" 的元素,但无法点击。

下面是html代码

<div class="fl f18 dtoggler pointer underline some-padding new_data_entry" data-div-id="eBWJcg" data-div-ref="new_Passport_form.eBWJcg">+ Add Passport</div>
<div class="clear new_Passport_form qEgULQ some-margin togglable" style="display: none;">

Selenium 代码:

driver.get("idfystaging.com/users/sign_in"); 
driver.findElement(By.name("user[login]")).sendKeys("rustam1‌​@yopmail.com"); 
driver.findElement(By.name("user[password]")).sendKeys("Pass‌​word123"); 
driver.findElement(By.name("commit")).click();     
driver.switchTo().frame("upload_iframe_1");
driver.findElement(By.cssSelector("body")).sendKeys(Keys.ESC‌​APE); 
JavascriptExecutor executor= (JavascriptExecutor)driver;
executor.executeScript("document.getElementById('qEgULQ').st‌​yle.display='block';‌​");click();

错误日志:

Cannot read property 'style' of null.

最佳答案

当您需要 class="qEgULq" 元素时,您正在尝试将 Javascript 应用于 id="qEgULq" 元素:

只是替换

executor.executeScript("document.getElementById('qEgULQ').st‌​yle.display='block';‌​");

executor.executeScript("document.querySelector('div.clear.new_Passport_form.qEgULQ.some-margin.togglable').st‌​yle.display='block';‌​");

另请注意,您提供的代码段中的click(); 未绑定(bind)到元素

更新

如果某些类名是动态生成的或仅在某些事件上分配的,则可以避免使用类名作为定位器:

WebElement targetDiv = driver.findElement(By.xpath("//div[text()='+ Add Passport']/following-sibling::div"));
executor.executeScript("arguments[0].st‌​yle.display='block';‌​", targetDiv);

关于javascript - 单击 selenium webdriver 中的样式 ="display: block;",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42526292/

相关文章:

javascript - scrollTop() 在 Chrome 浏览器中不起作用

javascript - 你能绘制出 React 的路线列表吗?

php - 如何在 codeigniter 中设置 403 错误自定义 html 页面

css - 如何去除 IE 8 及更低版本中选择元素周围的黑色边框效果?

html - 单击纸张输入打开纸张对话框

javascript - 是否有支持递归之类的javascript模板引擎?

html - Bootstrap : Allow an image to extend on top of the DIV?

html - 带有倾斜标签的 CSS 复选框

javascript - 如何将链接文本更改为 HTML 中的图像

javascript - 按类获取div的编号顺序