无法在表列中发送值。当我试图使用Selenium在列中插入值时,我得到了不同的错误。
>
WebElement.clear();
WebElement.sendKeys("value");
(or)
WebElement.sendKeys(Keys.DELETE);
WebElement.sendKeys("value");
然后单击并编辑该值。
Actions actions = new Actions(getWebDriverEx());
WebElement TableColumn = Driver.findElement(By.id("element"));
actions.moveToElement(TableColumn);
actions.click().build().perform();
actions.sendKeys(Keys.BACK_SPACE+b+b);
actions.sendKeys("value");
传递的值未插入表列中。但是我可以单击Tables列。我的考试通过了。
然后尝试设置值。它显示超时的错误。
WebElement.sendKeys(Keys.DELETE);
WebElement.sendKeys("15000");
我再次使用div/span组合作为XPath,并编辑了该值。但这并没有反映在表中。
JavascriptExecutor js = (JavascriptExecutor) getDriver();
js.executeScript("document.getElementById('element').innerHTML="+15000);
在这里我没有得到任何错误。但保存后未反映该值。
我给元素添加了各种格式。
HTML:
<div id="element" class="tables_second_column">
<div class="class_name">
<div class="class_name">
<div class="class_name"><span>5000</span></div>
</div>
</div>
</div>
根据您共享的超文本标记语言
,表列位于中
driver.findElement(By.xpath("//div[@id='element']/div[@class='class_name']/div[@class='class_name']/div[@class='class_name']/span[text()='5000']")).clear();
driver.findElement(By.xpath("//div[@id='element']/div[@class='class_name']/div[@class='class_name']/div[@class='class_name']/span[text()='5000']")).sendKeys("15000");
正如你提到的,在跨度中传递的文本是不可预测的,所以我们简单地省略子句[text()='5000']
。由于您提供了一个示例超文本标记语言
与示例类名称
,我构建了一个几乎绝对的xpath
。所以我们的代码将是:
driver.findElement(By.xpath("//div[@id='element']/div[@class='class_name']/div[@class='class_name']/div[@class='class_name']/span")).clear();
driver.findElement(By.xpath("//div[@id='element']/div[@class='class_name']/div[@class='class_name']/div[@class='class_name']/span")).sendKeys("15000");
这应该足够了
WebElement textBox = driver.findElement(By.xpath("//span[text()='5000']"));
textBox.clear();
textBox.sendKeys("");
textBox.sendKeys("15000");
我确实发送了一个空的空格来激活文本框,因为有时DOM可能不会立即反映,因为这个元素是安静嵌套的。
试试下面的,它对我有用:
js = "document.querySelector('#element .class_name .class_name .class_name>span').innerHTML = '15000';"
driver.execute_script(js)
希望对你有帮助!
问题内容: 我有一个列表,我想用condition()返回True的None替换值。 例如,如果条件检查bool(item%2)应该返回: 最有效的方法是什么? 问题答案: 使用列表理解来构建新列表: 您可以根据需要修改原始列表,但实际上并不能节省时间: 以下是(Python 3.6.3)演示非节省时间的时间: 和Python 2.7.6计时:
问题内容: 有没有更短的方法可以编写以下代码? 注意,我不需要替换那些确切的值。我只是在寻找一种将5条以上的线变成少于5条线的方法 问题答案: 看起来是使用循环的好机会: 如果您不介意括号,则更快的方法是:
问题内容: 原始列表将转换为正常。为什么原始列表的列表不能转换为的列表? 背景故事 (以减轻xy问题): 我正在使用return的API 。我碰巧知道它一直都是。我计划循环并构建自己的循环,但是我在尝试编写时试图修复(但不禁止)原始类型编译器警告。 我试过了: 但是这些会导致类型不匹配错误。 有趣的是,这没有给出警告或错误: 问题答案: // #1 (does compile) List raw
问题内容: 我想用另一个子列表替换list中的一个子列表。像这样: 可以说我想要一个像这样的子列表: 并替换为 所以最终结果将是 有什么建议? 问题答案: 希望能有所帮助
我有一个配置单元表保存在ORC文件中,这是“create”命令中的定义: 我想从末尾删除一个列,所以我尝试了“alter table-replace columns”命令,在这里我没有写列名--但是得到了这个错误:
问题内容: 我得到了这个清单: 我想用一些与之相似的奇异值代替,从而得到一个新的清单: 问题答案: 这些称为列表推导。