Di chuyển phần tử vào Chế độ xem với Selenium


207

Có cách nào trong Selenium 1.x hoặc 2.x để cuộn cửa sổ trình duyệt để một phần tử cụ thể được xác định bởi XPath nằm trong chế độ xem của trình duyệt không? Có một phương pháp lấy nét trong Selenium, nhưng dường như nó không cuộn vật lý trong chế độ xem trong FireFox. Có ai có bất kỳ đề nghị về cách làm điều này?

Lý do tôi cần điều này là tôi đang thử nghiệm nhấp chuột của một yếu tố trên trang. Thật không may, sự kiện dường như không hoạt động trừ khi phần tử được nhìn thấy. Tôi không có quyền kiểm soát mã kích hoạt khi phần tử được nhấp, vì vậy tôi không thể gỡ lỗi hoặc sửa đổi mã, vì vậy, giải pháp đơn giản nhất là cuộn mục vào chế độ xem.


Bạn có thể thử bản hack này nếu không có gì khác phù hợp với bạn : stackoverflow.com/a/53771434/7093031
YB Nguyên nhân

Câu trả lời:


214

Đã thử nhiều thứ liên quan đến cuộn, nhưng đoạn mã dưới đây đã cung cấp kết quả tốt hơn.

Điều này sẽ cuộn cho đến khi phần tử được xem:

WebElement element = driver.findElement(By.id("id_of_element"));
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
Thread.sleep(500); 

//do anything you want with the element

6
Đây là một giải pháp gọn gàng khi bạn có thể có một yếu tố position: fixedtrên trang của mình và nó đang che khuất yếu tố mà Selenium muốn nhấp vào. Thông thường các phần tử cố định này nằm ở dưới cùng, do đó, cài đặt scrollIntoView(true)sẽ di chuyển nó một cách độc đáo lên trên cùng của chế độ xem.
Mandible79

3
Dựa trên phiên bản mới nhất của selenium (2.53), đây hiện là một giải pháp trợ giúp tuyệt vời. Selenium không phải lúc nào cũng cuộn phần tử vào chế độ xem, vì vậy điều này chắc chắn có ích.
Zoidberg

20
Chuyển trueđến scrollIntoViewnếu đối tượng bạn đang cuộn đến bên dưới nơi bạn hiện đang ở, falsenếu đối tượng bạn đang cuộn đến phía trên nơi bạn hiện đang ở. Tôi đã có một thời gian khó khăn để tìm ra điều đó.
Tiền lớn

2
Tại sao bạn cần ngủ ngủ? execScript phải được đồng bộ
riccardo.tasso

1
@ riccardo.tasso một giấc ngủ có thể đã được thực hiện để đối phó với sự không biết của ứng dụng đích. Nếu nó có cuộn động hoặc ứng dụng một trang tải bit tiếp theo của trang sau khi cuộn, trong số các khả năng khác. Phát biểu từ kinh nghiệm, Selenium đã thường xuyên phá vỡ trang web của công ty tôi vì hành động tự động xảy ra nhanh hơn Javascript có thể hoàn thành và do đó đã vượt qua một mô hình dữ liệu chưa hoàn chỉnh. Một số nơi có thể coi đó là một lỗi, nhưng tôi đã nói "Không ai có thể gọi ra một kịch bản như vậy, vì vậy đó không phải là một lỗi thực sự." C'est la vie.
Solonotix

157

Bạn có thể sử dụng org.openqa.selenium.interactions.Actionslớp để di chuyển đến một phần tử.

Java:

WebElement element = driver.findElement(By.id("my-id"));
Actions actions = new Actions(driver);
actions.moveToElement(element);
actions.perform();

Con trăn

from selenium.webdriver.common.action_chains import ActionChains
ActionChains(driver).move_to_element(driver.sl.find_element_by_id('my-id')).perform()

7
Điều này có hoạt động không nếu WebEuity không có trong View Port?
virusrocks 4/11/2015

9
@Dominik: Selenium sẽ di chuyển chuột đến một yếu tố bên ngoài màn hình như thế nào? NGHIÊM TÚC, trước tiên nó phải cuộn phần tử vào chế độ xem và sau đó di chuyển chuột đến phần tử đó. Tôi đã thử nó. Mã này hoạt động trên Firefox WebSearch 2.48 nhưng có một lỗi: Khi bạn có iframe trong trang, cuộn không hoạt động chính xác trong iframe trong khi Element.LocationOnScreenOnceScrolledIntoView cuộn chính xác. (Mặc dù tài liệu nói rằng lệnh này chỉ trả về một vị trí, nhưng nó cũng cuộn!)
Elmue 5/12/2015

7
Các tài liệu tại seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/ trộm hiện rõ ràng "Di chuyển chuột đến giữa phần tử. Phần tử được cuộn vào chế độ xem và vị trí của nó được tính bằng cách sử dụng getBoundingClientRect. "
George Pantazes

5
Đoạn mã trên là "cách chính thức" Java Selenium muốn bạn thực hiện cuộn một phần tử vào khung nhìn, tuy nhiên sau khi thử nhiều thứ, việc triển khai JS dường như hoạt động đáng tin cậy hơn đối với tôi. Phương pháp này nói riêng.
Kenji Miwa

2
Không làm việc cho tôi: - | Thay vào đó sử dụng stackoverflow.com/a/23902068/661414 .
Leukipp

28
JavascriptExecutor js = (JavascriptExecutor) driver;
        js.executeScript("javascript:window.scrollBy(250,350)");

Bạn có thể muốn thử điều này.


1
Cảm ơn. Tôi cần sử dụng phương pháp này trong trường hợp cuộn tự động của Selenium khiến cho một yếu tố khác che khuất yếu tố tôi cần nhấp vào. Tôi đã có thể cuộn một lượng tùy ý để làm cho phần tử hiển thị trong chế độ xem mà không bị che khuất.
Daniel Richnak

Điều này sẽ chỉ hoạt động trong FIrefox, Chrome và IE không hỗ trợ phương pháp này
virusrocks 11/07/2015

Đây là lý do tại sao bạn sử dụng js.ExecuteScript("arguments[0].scrollIntoView(true);" + "window.scrollBy(0,-100);", e);cho IE và Firefox và js.ExecuteScript("arguments[0].scrollIntoViewIfNeeded(true);", e);cho Chrome. Đơn giản.
IamBatman

((JavascriptExecutor) driver).executeScript("javascript:window.scrollBy(0,250)");Điều này đã làm việc trong Chrome. Và giải pháp duy nhất thực sự hiệu quả với tôi. Tình huống tương tự như người bình luận đầu tiên, tôi có một yếu tố cố định ở phía dưới luôn che khuất yếu tố tôi cần nhấp vào.
bạc


15

Nếu bạn muốn cuộn trên cửa sổ Firefox bằng cách sử dụng weben Selenium, một trong những cách là sử dụng JavaScript trong mã Java. Mã JavaScript để cuộn xuống (xuống cuối trang web) như sau:

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollTo(0, Math.max(document.documentElement.scrollHeight, document.body.scrollHeight, document.documentElement.clientHeight));");

10

Nhắm mục tiêu bất kỳ yếu tố và gửi phím xuống (hoặc lên / trái / phải) dường như cũng hoạt động. Tôi biết đây là một chút hack, nhưng tôi không thực sự có ý tưởng sử dụng JavaScript để giải quyết vấn đề cuộn.

Ví dụ:

WebElement.sendKeys(Keys.DOWN);

Đây không phải là một hack so với sử dụng js và nó thực sự là điều đơn giản nhất. Tôi thấy đây chủ yếu là một vấn đề với IE khi một lần nhấp cố gắng cuộn phần tử vào chế độ xem nhưng không thực hiện được. Giải pháp thật thanh lịch khi sử dụng {PGUP} nếu được thực hiện với kịch bản thử / bắt / vòng thích hợp.
jibbs

Bạn đã cứu ngày của tôi! Cảm ơn
Jesko R.

Trong trường hợp của tôi xuống trang là điều làm việc. Đây là một hack tốt đẹp (so với tất cả các hack js).
akostadinov

Cảm ơn @DevDave! Tương đương trong C #:var elem = driver.FindElement(By.Id("element_id")); elem.SendKeys(Keys.PageDown);
Watth

9
webElement = driver.findElement(By.xpath("bla-bla-bla"));
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", webElement);

Để biết thêm ví dụ, hãy vào đây . Tất cả bằng tiếng Nga, nhưng mã Java là đa văn hóa :)


Tôi có thể hiểu tại sao có -1 cho giải pháp này không?
josephnvu 6/07/2015

Bởi vì nó chỉ hoạt động trong Firefox. Không có trình duyệt khác hỗ trợ phương pháp này.
Wayne Allen

Nếu ai đó cần một bản dịch từ tiếng Nga cho tài liệu nói trên, sẽ sẵn lòng giúp đỡ.
monkrus

8

Trong Selenium, chúng ta cần có sự trợ giúp của người thi hành JavaScript để cuộn đến một phần tử hoặc cuộn trang:

je.executeScript("arguments[0].scrollIntoView(true);", element);

Trong tuyên bố trên elementlà yếu tố chính xác mà chúng ta cần cuộn. Tôi đã thử mã trên, và nó làm việc cho tôi.

Tôi có một bài viết và video đầy đủ về điều này:

http://learn-automation.com/how-to-scroll-into-view-in-selenium-webdo/


@Mukesh otwani đoạn mã trên sẽ cuộn xuống, nhưng làm thế nào abt cuộn lên mà không sử dụng bất kỳ pixel nào được xác định trong nó.
khan

6

Bạn có thể sử dụng đoạn mã này để cuộn:

C #

var element = Driver.FindElement(By.Id("element-id"));
Actions actions = new Actions(Driver);
actions.MoveToElement(element).Perform();

Bạn có nó


6

Điều này làm việc cho tôi:

IWebElement element = driver.FindElements(getApplicationObject(currentObjectName, currentObjectType, currentObjectUniqueId))[0];
 ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", element);

5

Selenium 2 cố gắng cuộn đến phần tử và sau đó nhấp vào nó. Điều này là do Selenium 2 sẽ không tương tác với một yếu tố trừ khi nó nghĩ rằng nó có thể nhìn thấy được.

Cuộn đến phần tử xảy ra ngầm để bạn chỉ cần tìm mục và sau đó làm việc với nó.


19
Làm thế nào đây là một câu trả lời cho câu hỏi?
Revierpost

57
dường như không làm việc theo cách đó đối với tôi. Đang nhận được lỗi 'phần tử không thể nhấp' cho các phần tử nằm ngoài tầm nhìn
DevDave

5
@DevDave Tôi có cùng một vấn đề, ngoại trừ trong trường hợp của tôi, selen không thực hiện hành động nhấp chuột vào phần tử và không có trường hợp ngoại lệ. Tôi không có vấn đề trước đây và tôi không biết điều gì đã gây ra điều đó.
Zeinab Abbasimazar

5
Cuộn ẩn khác nhau giữa các trình duyệt. Tôi có một bài kiểm tra về một yếu tố trong menu bật lên giữa trang. Với Ruby gem selenium_webdo 2.43, tôi thấy trình duyệt crom 37 (và tôi tin rằng Internet Explorer) thực sự cuộn mục menu vào xem và nhấp vào nó. Nhưng Firefox 32 dường như hoàn toàn không cuộn, và sau đó thất bại với "Phần tử hiện không hiển thị và do đó có thể không được tương tác với".
trượt tuyết

9
Câu trả lời này là sai. Theo thông số kỹ thuật cho Selenium 2.0 WebElement.click()yêu cầu phần tử hiển thị để nhấp vào nó. Nó sẽ không cuộn thay mặt bạn.
Gili

5

Sử dụng trình điều khiển để gửi các phím như pagedownhoặc downarrowphím để đưa phần tử vào xem. Tôi biết đó là một giải pháp quá đơn giản và có thể không áp dụng được trong mọi trường hợp.


1
Thật vô nghĩa. Bạn có thể phải gửi một tá trang xuống trên một trang lớn. Nó chậm và không đáng tin cậy.
Elmue

2
Đúng. Tôi đồng ý. Nhưng tôi đã nói "không áp dụng trong mọi trường hợp"
Ganesh S

Tìm một số được biết đến elementtrong trang có thể xem và gửi PageDown element.SendKeys(Keys.PageDown);làm việc cho tôi.
Gokul

Tôi khuyên bạn nên sử dụng phím Alt để bạn không cuộn trang và sử dụng mệnh đề try / trừ (Python) để xử lý các lỗi có thể xảy ra trong khi cố gắng gửi khóa tới một số thành phần.
Alex K.

4

Theo kinh nghiệm của tôi, Selenium WebSearch không tự động cuộn đến một phần tử khi nhấp khi có nhiều phần có thể cuộn trên trang (khá phổ biến).

Tôi đang sử dụng Ruby và đối với AUT của tôi, tôi đã phải sửa chữa phương thức nhấp chuột như sau;

class Element

      #
      # Alias the original click method to use later on
      #
      alias_method :base_click, :click

      # Override the base click method to scroll into view if the element is not visible
      # and then retry click
      #
      def click
        begin
          base_click
        rescue Selenium::WebDriver::Error::ElementNotVisibleError
          location_once_scrolled_into_view
          base_click
        end
      end

Phương thức 'location_once_scrolled_into_view' là một phương thức hiện có trên lớp WebEuity.

Tôi bảo đảm bạn có thể không sử dụng Ruby nhưng nó sẽ cung cấp cho bạn một số ý tưởng.


Tôi đã tuyên bố ở trên module Capybara :: module Node, và tôi cần phải gọi native.location_once_scrolled_into_viewthay vì chỉ location_once_scrolled_into_view. Tôi cũng đã giải cứu ::Selenium::WebDriver::Error::UnknownError, đó là điều tôi thường nhận được trong Firefox 44.0.2. Nhưng tôi thấy giải pháp này không đủ linh hoạt và cuối cùng đưa các <Element>.native.location_once_scrolled_into_viewcuộc gọi vào thử nghiệm chấp nhận, ngay sau đó là page.execute_script('window.scrollByPages(-1)')nơi cần thiết.
Al Chou

Watir có phương thức Element#scroll_into_viewủy nhiệm cho Selenium location_once_scrolled_into_view. Nhưng cả hai không làm gì khác với hành vi mặc định của Selenium vì vậy các phần tử tràn vẫn có thể cản trở bất cứ điều gì chúng ta cố gắng nhấp.
akostadinov

3

Kịch bản Ruby để cuộn một phần tử vào dạng xem như bên dưới.

$driver.execute_script("arguments[0].scrollIntoView(true);", element)
sleep(3)
element.click

2

Đôi khi tôi cũng gặp phải vấn đề di chuyển với Selenium. Vì vậy, tôi đã sử dụng javaScriptExecuter để đạt được điều này.

Để cuộn xuống:

WebDriver driver = new ChromeDriver();
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("window.scrollBy(0, 250)", "");

Hoặc, cũng

js.executeScript("scroll(0, 250);");

Để cuộn lên:

js.executeScript("window.scrollBy(0,-250)", "");

Hoặc là,

js.executeScript("scroll(0, -250);");

2

Nếu bạn nghĩ rằng các câu trả lời khác quá hóc búa thì câu trả lời này cũng vậy, nhưng không có nội dung liên quan đến JavaScript.

Khi nút tắt màn hình, nó sẽ vỡ và cuộn đến nó, vì vậy hãy thử lại ... ¯ \ _ (ツ) _ /

try
{
    element.Click();
}
catch {
    element.Click();
}

2

Đây là một giải pháp lặp đi lặp lại với JavaScript, nhưng có thêm phần tử chờ.

Mặt khác ElementNotVisibleExceptioncó thể xuất hiện nếu một số hành động trên phần tử đang được thực hiện.

this.executeJavaScriptFunction("arguments[0].scrollIntoView(true);", elementToBeViewable);
WebDriverWait wait = new WebDriverWait(getDriver(), 5);
wait.until(ExpectedConditions.visibilityOf(elementToBeViewable));

?? <- nghĩa là gì?
Choi

1

Tôi đã sử dụng cách này để cuộn phần tử và nhấp:

List<WebElement> image = state.getDriver().findElements(By.xpath("//*[contains(@src,'image/plus_btn.jpg')]"));

for (WebElement clickimg : image)
{
  ((JavascriptExecutor) state.getDriver()).executeScript("arguments[0].scrollIntoView(false);", clickimg);
  clickimg.click();
}

Trong trường hợp của tôi, scrollIntoView(false)đã làm việc, nhưng scrollIntoView(true)không. Hoặc là có thể làm việc , nó phụ thuộc vào kịch bản của bạn.
rsenna

Trường hợp của tôi thì ngược lại - tác phẩm thật, sai thất bại, nhưng chỉ khi nhấp chuột đi. Nó cuộn chính xác cho sai, và đó là những gì tôi thích, nhưng vì lý do gì Selenium vẫn không thể nhìn thấy nó để nhấp. Sử dụng cuộn thực sự mọi thứ quá cao, nhưng ít nhất nó hoạt động.
Bill Hileman

Sendkey người dùng nhập thay vì nhấp khi có thể - nó sẽ tránh được các vấn đề nếu trình duyệt không được phóng to 100%.
Zunair

1
def scrollToElement(element: WebElement) = {
  val location = element.getLocation
  driver.asInstanceOf[JavascriptExecutor].executeScript(s"window.scrollTo(${location.getX},${location.getY});")
}

1

Bạn có thể muốn truy cập trang Các phần tử web và trang Web - Selenium WebDriver bằng Javascript :

public static void main(String[] args) throws Exception {

    // TODO Auto-generated method stub
    FirefoxDriver ff = new FirefoxDriver();
    ff.get("http://toolsqa.com");
    Thread.sleep(5000);
    ff.executeScript("document.getElementById('text-8').scrollIntoView(true);");
}

@AbhishekBedi Tôi nhớ rằng nó cũng được hỗ trợ trong Chrome. Bất kỳ vấn đề cụ thể bạn có thể phải đối mặt?
virusrocks

1

Trong hầu hết các tình huống để cuộn mã này sẽ hoạt động.

WebElement element = driver.findElement(By.xpath("xpath_Of_Element"));                 
js.executeScript("arguments[0].click();",element);

1

JAVA

Hãy thử cuộn đến x yvị trí sử dụng phần tử và sử dụng JavascriptExecutorvới đối số này:"window.scrollBy(x, y)" .

Nhập khẩu sau:

import org.openqa.selenium.WebElement;
import org.openqa.selenium.JavascriptExecutor;

Trước tiên, bạn cần có được x yvị trí các yếu tố.

//initialize element
WebElement element = driver.findElement(By.id("..."));

//get position
int x = element.getLocation().getX();
int y = element.getLocation().getY();

//scroll to x y 
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollBy(" +x +", " +y +")");

1

Tôi không chắc câu hỏi có còn liên quan hay không nhưng sau khi tham khảo tài liệu scrollIntoView từ https://developer.mozilla.org/en-US/docs/Web/API/Euity/scrollIntoView .

Giải pháp đơn giản nhất là

executor.executeScript("arguments[0].scrollIntoView({block: \"center\",inline: \"center\",behavior: \"smooth\"});",element);

Điều này cuộn phần tử vào trung tâm của trang.


0

Hành vi mặc định của Selenium chúng tôi để cuộn để phần tử hầu như không nhìn thấy ở đầu chế độ xem. Ngoài ra, không phải tất cả các trình duyệt có hành vi chính xác như nhau. Điều này rất không thỏa mãn. Nếu bạn quay video các bài kiểm tra trình duyệt của mình, như tôi làm, điều bạn muốn là cho phần tử cuộn vào chế độ xem và được căn giữa theo chiều dọc .

Đây là giải pháp của tôi cho Java:

public List<String> getBoundedRectangleOfElement(WebElement we)
{
    JavascriptExecutor je = (JavascriptExecutor) driver;
    List<String> bounds = (ArrayList<String>) je.executeScript(
            "var rect = arguments[0].getBoundingClientRect();" +
                    "return [ '' + parseInt(rect.left), '' + parseInt(rect.top), '' + parseInt(rect.width), '' + parseInt(rect.height) ]", we);
    System.out.println("top: " + bounds.get(1));
    return bounds;
}

Và sau đó, để cuộn, bạn gọi nó như thế này:

public void scrollToElementAndCenterVertically(WebElement we)
{
    List<String> bounds = getBoundedRectangleOfElement(we);
    Long totalInnerPageHeight = getViewPortHeight(driver);
    JavascriptExecutor je = (JavascriptExecutor) driver;
    je.executeScript("window.scrollTo(0, " + (Integer.parseInt(bounds.get(1)) - (totalInnerPageHeight/2)) + ");");
    je.executeScript("arguments[0].style.outline = \"thick solid #0000FF\";", we);
}

Hàm getViewPortHeight bị thiếu ... Trong một giả định bạn đang lấy chiều cao của phần tử đích
Shubham Jain

0

Đây là cách tôi làm với PHP webDriver cho Selenium. Nó hoạt động cho máy chủ độc lập Selenium 2.39.0 + https://github.com/Euity-34/php-webdo + Firefox 25.0

$element=$session->welement("xpath", "//input[@value='my val']");
$element->click();
$element=$session->welement("xpath", "//input[@value='ma val2']");
$element->location_in_view(); // < -- this is the candy
$element->click();

Lưu ý: Tôi sử dụng phiên bản tùy chỉnh của Element34 PHP-webdo. Nhưng không có bất kỳ thay đổi nào trong cốt lõi. Tôi chỉ sử dụng "sự chào đón" của mình thay vì "yếu tố". Nhưng nó không ảnh hưởng đến trường hợp trong câu hỏi. Tác giả trình điều khiển nói "cho phép hầu hết tất cả các lệnh gọi API là một chuyển đổi trực tiếp của những gì được xác định trong chính giao thức WebDriver." Vì vậy, bạn không có vấn đề với các ngôn ngữ lập trình khác.

Chỉ cần nhấp vào sẽ không hoạt động trong thiết lập của tôi. Nó sẽ thực hiện cuộn thay vì nhấp, vì vậy tôi phải nhấp hai lần mà không gọi "location_in_view ()".

Lưu ý: Phương pháp này hoạt động cho các yếu tố có thể được xem, như đầu vào của loại nút.

Hãy xem: http://code.google.com.vn/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/element/:id/location

Mô tả cho JsonWireProtocol # đề xuất sử dụng vị trí + Moveto, vì vị trí _in_view là một phương thức nội bộ.


0

Một cái gì đó hiệu quả với tôi là sử dụng phương thức Browser.MoveMouseToEuity trên một phần tử ở dưới cùng của cửa sổ trình duyệt. Thật kỳ diệu, nó đã hoạt động trong Internet Explorer, Firefox và Chrome.

Tôi đã chọn điều này qua kỹ thuật tiêm JavaScript chỉ vì cảm thấy ít hack hơn.


Ngôn ngữ lập trình này là gì?
akostadinov

0

Tôi đã thực hiện thử nghiệm với các thành phần ADF và bạn phải có một lệnh riêng để cuộn nếu sử dụng tải lười biếng. Nếu đối tượng không được tải và bạn cố gắng tìm nó bằng Selenium, Selenium sẽ đưa ra một ngoại lệ không tìm thấy phần tử.


0

Nếu không có gì hoạt động, hãy thử điều này trước khi nhấp vào:

public void mouseHoverJScript(WebElement HoverElement) {

    String mouseOverScript = "if(document.createEvent){var evObj = document.createEvent('MouseEvents');evObj.initEvent('mouseover', true, false); arguments[0].dispatchEvent(evObj);} else if(document.createEventObject) { arguments[0].fireEvent('onmouseover');}";
    ((JavascriptExecutor) driver).executeScript(mouseOverScript, HoverElement);
}

0

Trong Java, chúng ta có thể cuộn bằng cách sử dụng JavaScript, như trong đoạn mã sau:

driver.getEval("var elm = window.document.getElementById('scrollDiv'); if (elm.scrollHeight > elm.clientHeight){elm.scrollTop = elm.scrollHeight;}");

Bạn có thể gán giá trị mong muốn cho biến "elm.scrollTop".


0

Một giải pháp là:

public void javascriptclick(String element)
{
    WebElement webElement = driver.findElement(By.xpath(element));
    JavascriptExecutor js = (JavascriptExecutor) driver;

    js.executeScript("arguments[0].click();", webElement);
    System.out.println("javascriptclick" + " " + element);
}

0

Mã này đang làm việc cho tôi:

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("javascript:window.scrollBy(250, 350)");

Làm việc cho tôi. Việc triển khai Dart WebDriver chưa có hành động.
Günter Zöchbauer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.