在selenium for inputbox中,我们可以输入如下值:
WebElement inputBox = driver.findElement(By.xpath(xpath)));
inputBox.sendKeys("abc");
但是在1个网页上,点击后我有一个按钮得到一个div,我必须通过selenium进入,我得到了该div的xpath,如
WebElement inputDiv = driver.findElement(By.xpath("//div[contains(@class,'x-grid3-cell-inner')]"));
inputDiv.sendKeys("abc"); //This is not working
使用xpath,我得到div,但是如何使用它的xpath输入文本?
手动添加文本后Html:
<div class="x-grid3-cell-inner">ty</div>
我必须输入文本的div是:
<div class="x-grid3-cell-inner" />
答案 0 :(得分:3)
您可以使用JavaScript
更新DIV文本JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementById('Div_Id').innerHTML="+ DesiredText);
在JavaScript中使用XPATH
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.evaluate(xpathExpresion, document, null, 9, null).singleNodeValue.innerHTML="+ DesiredText);
答案 1 :(得分:0)
您无法使用发送密钥编辑此div,因为它没有要发送的输入。相反,请尝试编辑div的文本字段。
答案 2 :(得分:0)
Sendkeys用于在标签名称为“ input”的输入字段中键入 您不能在此处使用sendkeys
相反,您将必须使用JavascriptExecutor来完成此操作
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Container(
height: 300,
width: 300,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(25),
image: DecorationImage(
fit: BoxFit.cover,
image: NetworkImage(
'https://cf.shopee.ph/file/6907c52b5698df501bf2fd83e803d6d2')))),
FractionalTranslation(
translation: Offset(0, -0.5),
child: Container(
width: 160,
height: 70,
child: Center(
child: Text(
'-99%',
style: TextStyle(
fontSize: 24,
color: Colors.white,
fontWeight: FontWeight.bold),
)),
decoration: BoxDecoration(
color: Colors.redAccent,
borderRadius: BorderRadius.circular(50),
border: Border.all(width: 5, color: Colors.white)),
),
),
FractionalTranslation(
translation: Offset(0, -1),
child: Text(
'US \$0.01',
style: TextStyle(
color: Colors.redAccent,
fontWeight: FontWeight.bold,
fontSize: 28),
),
),
],
),