亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何右鍵單擊一個元素并在 selenium 的 Chrome 瀏覽器中選擇一個選項

如何右鍵單擊一個元素并在 selenium 的 Chrome 瀏覽器中選擇一個選項

慕容708150 2021-12-01 16:11:31
我正在自動化一個頁面,我想右鍵單擊一個元素,然后單擊“將鏈接另存為...。我可以右鍵單擊該元素,但無法選擇任何選項。下面是我編寫的代碼,但它實際上不是選擇一個選項,而是點擊該元素。WebElement elementq =driver.findElement(By.xpath("//a[contains(text(),'fedev.docs-gmail.JPG')][@class]"));      Actions builderq = new Actions(driver);    builderq.contextClick(elementq).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER);      builderq.build().perform();下面是 HTML:<p><a class="icon icon-attachment" href="/attachments/download/15535/fedev.docs-gmail.JPG">fedev.docs-gmail.JPG</a>    <span class="size">(100 KB)</span>    <a data-confirm="Are you sure?" class="delete" title="Delete" rel="nofollow" data-method="delete" href="/attachments/15535"><img src="/images/delete.png" alt="Delete"></a>    <span class="author">Asim Sarfraz, 25 September 2018 08:24 AM</span>  </p>
查看完整描述

3 回答

?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

如果您的目的是從網頁上下載圖片,您可以直接下載帶有 url 的圖片,而不是右鍵單擊。


WebElement elementq =driver.findElement(By.xpath("//a[contains(text(),'fedev.docs-gmail.JPG')][@class]"));

String imageLink = logo.getAttribute("href");

String fileName = url.getFile();

URL imageURL = new URL(imageLink);

InputStream in = new BufferedInputStream(imageURL.openStream());

OutputStream out = new BufferedOutputStream(new FileOutputStream(fileName));


for ( int i; (i = in.read()) != -1; ) {

    out.write(i);

}

in.close();

out.close();


查看完整回答
反對 回復 2021-12-01
?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

嘗試使用Robot對象解決它:


Actions builderq = new Actions(driver);

builderq.contextClick(elementq);

builderq.build().perform();

Robot robot = new Robot();

int REPEATS_OF_VK_DOWN_INPUT = 3;

for (int i = 0; i < REPEATS_OF_VK_DOWN_INPUT; i++) {

    robot.keyPress(KeyEvent.VK_DOWN);

    robot.keyRelease(KeyEvent.VK_DOWN);

    Thread.sleep(500);

}

robot.keyPress(KeyEvent.VK_ENTER);

robot.keyRelease(KeyEvent.VK_ENTER);

Thread.sleep(1000);


查看完整回答
反對 回復 2021-12-01
?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

評論太大了,所以作為答案發布。

根據您想要的問題contextClick(element)Save link as通過操作進行選擇。

值得一提的是,如果上下文菜單列表已經實現為原生上下文菜單列表,我們可以很容易地解決這個問題。但根據您共享的 HTML,似乎context-menu-listChrome 瀏覽器的 原生 context-menu-list。

根據Chromedriver 不會將鍵發送到上下文菜單

  • contextClick(element)進入渲染器進程

  • 這是ChromeDriver模擬按鍵方式的限制。

  • 可以稱為ChromeDriver 架構錯誤限制,我們必須等到問題得到解決。


查看完整回答
反對 回復 2021-12-01
  • 3 回答
  • 0 關注
  • 252 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號