选择文本并执行单击操作

问题描述 投票:0回答:4

我想选择一些文本并执行单击操作 - 就像在 Winword 中,我们在选择一些文本后单击

Bold
...

我必须选择文本并单击

<B>
中的
textarea
粗体图标。

知道如何使用 Selenium/Webdriver 来做到这一点吗?

selenium webdriver selenium-webdriver
4个回答
9
投票

在 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();

1
投票

我尝试了

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(); 

0
投票

我尝试过这个方法,但没有成功。代码如下:

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);

0
投票

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();

© www.soinside.com 2019 - 2024. All rights reserved.