我正在使用硒与Java(最新的两个)。试图在我们的WebApp中的一个模式内的一个小画布区域上进行绘制。我们用来画布的库是'Signature pad JS'。我已经确认了它不是在iframe或任何可能出现问题的棘手的东西(它只是一个带有div.signature-input canvas元素的常规div.modal-body)。
但它什么也没做。我在这里看了很多stackoverflow的帖子,大多数看起来都很相同,只有很少的变化可以尝试(我一直都在尝试它们)。
下面是我尝试的最新代码://绘制某种类型的签名
WebElement元素=driver.findElement(使用.locator(SIGNATURE_AREA));//画布元素
Actions builder=新操作(驱动程序);Builder.ClickAndHold(元素).MoveByOffset(10,50).moveByOffset(50,10)。moveByOffset(-10,-50)。moveByOffset(-50,-10)。释放()。执行();
我试过各种补偿方法,但都没有效果。如果有人有这方面的经验,真的会很乐意帮忙。
我想你的问题出在代码上,我已经用ruby做过了,它工作得很好…下面的Ruby代码(在FireFox中工作)
driver.find_element(:xpath, "html/body/div[1]/div[5]/div[2]/canvas").click
element = driver.find_element(:xpath, "html/body/div[1]/div[5]/div[2]/canvas");
driver.action.move_to(element).perform
driver.action.click_and_hold(element).perform
driver.action.move_by(150, 50).click.perform
driver.action.move_to(element).perform
driver.action.click_and_hold(element).perform
driver.action.move_by(100, 50).click.perform
driver.action.move_to(element).perform
driver.action.click_and_hold(element).perform
driver.action.move_by(300, 10).click.perform
sleep (5)
所以我试过用Java为你做同样的事情,它的工作很好,它画出了预期的两条线。诀窍是moveby后面不应该点击,否则它会分散焦点。下面的代码在Java和chrome中运行良好。我使用https://sketchtoy.com/在画布上画画
public class BrowserTesting {
WebDriver driver;
@Test
public void test1() throws InterruptedException {
//WebDriverManager.chromedriver().setup();
System.setProperty("webdriver.chrome.driver","C:\\Users\\pathtyourchrome\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("useAutomationExtension", false);
//disable automation info bar
options.addArguments("disable-infobars");
driver = new ChromeDriver(options);
driver.get("https://sketchtoy.com/");
WebElement element = driver.findElement(By.xpath("//div[@class='sketch-canvas-container']/canvas"));//canvas element
Actions builder = new Actions(driver);
builder.moveToElement(element).perform();
builder.clickAndHold(element).perform();
builder.moveByOffset(150, 50).perform();
builder.moveToElement(element).perform();
builder.clickAndHold(element).perform();
builder.moveByOffset(100, 50).perform();
builder.moveToElement(element).perform();
Thread.sleep(5000);
//driver.quit();
}
}
如果成功了就告诉我!
问题内容: 尝试使用awt canvas上的鼠标来绘制图形(目前为线)。Iam首次尝试Java图形。所以不确定如何去做。这是我的第一次尝试: 问题:1)将窗口最小化并还原后,绘制的线条消失了(由于要重新绘制)2)我要的是该线条应跟随鼠标移动(拖动时)。最后一行应该从按下位置到释放鼠标的位置。现在请礼节,当鼠标移动时,将绘制新的线条。我不确定如何清除画布上的中间线。 有人可以帮我解决这些问题吗? 问
在画布上画画是非常好的。即使橡皮擦也能工作得很好。问题是当画布保存为图像时,它画的是黑线,而不是橡皮擦。 为了更好地理解,我添加了屏幕、镜头和代码。 1.在擦除图的同时- 我不明白为什么橡皮移动被替换为黑色,而保存画布作为一个图像。
5.2.3 在画布上绘图 本节介绍如何在画布上绘制图形。为了完整起见,我们将前面介绍过的首先需要执行的 几条语句合在一起复制如下: >>> from Tkinter import * >>> root = Tk() >>> c = Canvas(root,width=300,height=200,bg='white') >>> c.pack() 如前所述,c 是一个画布对象,而画布对象提供了若干
有人能澄清我的一些困惑吗? 有可能在画布的顶部有html吗?我一直在读,你不能有GUI元素,比如带画布的Jquery,但是我读到你可以在画布上有HTML,为什么你可以有一个却没有另一个? 理想情况下,我最终想要的是在画布顶部有一个好的GUI,所以只需要知道什么是可能的,什么是不可能的。
十七、在画布上绘图 绘图就是欺骗。 M.C. Escher,由 Bruno Ernst 在《The Magic Mirror of M.C. Escher》中引用 浏览器为我们提供了多种绘图方式。最简单的方式是用样式来规定普通 DOM 对象的位置和颜色。就像在上一章中那个游戏展示的,我们可以使用这种方式实现很多功能。我们可以为节点添加半透明的背景图片,来获得我们希望的节点外观。我们也可以使用tra