Щелчок селена () событие, кажется, не всегда инициирован => результаты в тайм-ауте?

В Java varargs являются синтаксическим сахаром для создания массива при вызове метода. Например, эти два вызова эквивалентны:

void foo(String... args) { ... }

foo("hello", null, "world", xyz);  // Java 1.5+
foo(new String[]{"hello", null, "world", xyz});  // All versions of Java

Varargs не делает ничего нового (по определению синтаксического сахара), но уменьшает верность и делает некоторые конструкции более приятными для реализации. Например, некоторые из моих любимых применений vararg включают в себя: PrintStream.printf() , String.format() , Method.invoke() .

Другие хорошие применения varargs:

// This one is in the Java standard library
Collections: void addAll(Collection c, T... elements);

// Custom examples
int max(int... nums);
void doOperation(File x, String y, SomeEnum options...);

Кроме того, varargs Java доводят язык до четности с поддержкой vararg на языках C, Python, JavaScript и других языках. Поэтому, если часто повторяющийся дизайн (например, max()) лучше всего работает с varargs, Java больше не является нечетным языком, требующим более уродливой реализации.

26
задан blackicecube 11 March 2009 в 17:01
поделиться

7 ответов

Страница не загрузилась правильно при нажатии на нее. Проверьте на различные элементы на странице, чтобы быть уверенными, что страница загрузилась.

кроме того, ожидайте ссылки, чтобы появиться и быть видимыми перед нажатием на нее.

1
ответ дан Vijay Kotari 25 September 2019 в 08:00
поделиться

Удостоверьтесь, что Вы увеличиваете тайм-аут в корректном месте. Строки, которые Вы отправили:

selenium.click("link=mylink");
selenium.waitForPageToLoad(60000);

Это ожидание состоит в том, чтобы страница загрузилась, который возвращается После щелчка. Но проблема, которую Вы описываете, состоит в том, что это перестало работать при попытке сделать щелчок. Так, удостоверьтесь, что увеличили ожидание Перед этим.

selenium.click("link=mylink");
selenium.waitForPageToLoad(60000);

// do something, then navigate to a different page 
// (window focus is never changed in-between)
// after the last click in these steps:
selenium.waitForPageToLoad(60000);
// anything else that happened after that

selenium.click("link=mylink");
selenium.waitForPageToLoad(60000);
1
ответ дан eglasius 25 September 2019 в 08:00
поделиться

Я сделал селен некоторое время, и я действительно разработал неприязнь к waitForPageToLoad (). Вы могли бы полагать всегда просто, что ожидание рассматриваемого элемента существовало.

я нахожу, что этот метод, кажется, решает самые странные вопросы, с которыми я сталкиваюсь как это. Другая возможность состоит в том, что у Вас может быть некоторый JavaScript, препятствующий тому, чтобы ссылка делала что-либо, при нажатии в первый раз. Это кажется маловероятным, но стоящим перепроверки.

4
ответ дан Eric Wendelin 25 September 2019 в 08:00
поделиться

Иногда, на первый взгляд случайно, Selenium просто не любит щелкать определенные теги привязки. Не знаю, чем это вызвано, но бывает. В этих случаях я нахожу проблемную ссылку вместо выполнения

selenium.click(...)

do

selenium.fireEvent( locator, 'click' );

. Как уже отмечалось выше, у меня были проблемы с тегами привязки, которые выглядят следующим образом:

<a href="javascript:...." >
10
ответ дан 28 November 2019 в 07:52
поделиться

То, что вы описываете, является менее общей версией функции раздела .

Алгоритмы уже данные, смехотвочно сложны, вот проще один (в псевдо-коде, я оставлю его для перевода на Java :) )

p(min, n):
    if min > n: return 0
    if min = n: return 1
    return p(min+1, n) + p(min, n-min)
-121--3375285-

Я просто попробовал WebDriver (Selenium 2.0) и обнаружил, что работает Weafelement # SendKeys (Keys.enter).

3
ответ дан 28 November 2019 в 07:52
поделиться

Попробуйте следующее:

selenium.fireEvent(ID, "keypress");
0
ответ дан 28 November 2019 в 07:52
поделиться
selenium.click("link=Continue to this website (not recommended).");
Thread.sleep(5000);
0
ответ дан 28 November 2019 в 07:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: