Увеличение скорости нажатия через WebDriverwait с помощью Selenium - PullRequest
0 голосов
/ 22 сентября 2019

Можно ли уменьшить период времени между каждым кликом в Selenium?Насколько я знаю, по умолчанию вебдрайвер пытается щелкать каждые полсекунды.

Ответы [ 2 ]

0 голосов
/ 23 сентября 2019

click ()

click() метод выбирает элемент, который определяется как:

def click(self):
    """Clicks the element."""
    self._execute(Command.CLICK_ELEMENT)

Command.CLICK_ELEMENT выполняется только при вызове click() вызывается.


Предположительно, вы имеете в виду вызов метода click() после возврата элемента через WebDriverWait в сочетании с Ожидаемые_условия следующим образом:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.button#btn"))).click()

Конструктор WebDriverWait имеет вид:

class selenium.webdriver.support.wait.WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)

where:
    driver - Instance of WebDriver (Ie, Firefox, Chrome or Remote)
    timeout - Number of seconds before timing out
    poll_frequency - sleep interval between calls By default, it is 0.5 second.
    ignored_exceptions - iterable structure of exception classes ignored during calls. By default, it contains NoSuchElementException only

Таким образом, timeperiod , на который вы ссылаетесь, возможно poll_frequency, который по умолчанию установлен на 0,5 секунды т.е. 500 миллисекунд , и это интервал времени между двумя последовательными вызовами find_element_by_*.

Если вы хотите настроить / увеличить / уменьшить poll_frequency , вы можете изменить конструктор , например:

class WebDriverWait(object):
    def __init__(self, driver, timeout, poll_frequency=POLL_FREQUENCY, ignored_exceptions=None):

    self._driver = driver
    self._timeout = timeout
    self._poll = poll_frequency
    # avoid the divide by zero
    if self._poll == 0:
        self._poll = POLL_FREQUENCY
    exceptions = list(IGNORED_EXCEPTIONS)
    if ignored_exceptions is not None:
        try:
        exceptions.extend(iter(ignored_exceptions))
        except TypeError:  # ignored_exceptions is not iterable
        exceptions.append(ignored_exceptions)
    self._ignored_exceptions = tuple(exceptions)
0 голосов
/ 22 сентября 2019

Этого можно добиться с помощью функции JS

num = 0; //to count clicks
var element = document.getElementsByClassName('yourEl');
function clicker () {element.click(); num+=1;}
setInterval(clicker,0.2);
...