我想选择一些文本并执行单击操作 - 就像在 Winword 中,我们在选择一些文本后单击
Bold
...
我必须选择文本并单击
<B>
中的 textarea
粗体图标。
知道如何使用 Selenium/Webdriver 来做到这一点吗?
在 Java 中,高级用户交互 API 可以为您提供答案。
// the element containing the text
WebElement element = driver.findElement(By.id("text"));
// assuming driver is a well behaving WebDriver
Actions actions = new Actions(driver);
// and some variation of this:
actions.moveToElement(element, 10, 5)
.clickAndHold()
.moveByOffset(30, 0)
.release()
.perform();
我尝试了
Action
builder
并玩了offset
。这对我有用。
Actions action = new Actions(driver);
action.moveToElement(wblmt,3,3).click().keyDown(Keys.SHIFT).moveToElement(wblmt,200, 0).click().keyUp(Keys.SHIFT).build().perform();
我尝试过这个方法,但没有成功。代码如下:
System.setProperty("webdriver.chrome.driver", "D:/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com.vn");
driver.manage().window().maximize();
WebElement text = driver.findElement(By.xpath("//*[contains(text(),'Google.com.vn')]"));
Actions actions = new Actions(driver);
actions.moveToElement(text, 10, 5).clickAndHold().moveByOffset(30, 0).release().perform();
我切换到JavascriptExecutor并且它起作用了:
System.setProperty("webdriver.chrome.driver", "D:/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com.vn");
driver.manage().window().maximize();
WebElement text = driver.findElement(By.xpath("//*[contains(text(),'Google.com.vn')]"));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].setAttribute('style', 'background: blue;');", text);
driver.navigate().to("https://leafground.com/input.xhtml"); WebElement cls= driver.findElement(By.xpath("//div[@class="ql-editor ql-blank"]")); cls.sendKeys("这是 rakshika " + Keys.CONTROL + "a"); driver.findElement(By.xpath("//按钮[@class="ql-italic"] ")).click();