Это невозможно сделать полностью из CDN. Правильно настраивать / переопределять с помощью SASS, вам необходимо @import необходимые файлы scstss Bootstrap в вашем custom.scss
. Чтобы переопределить контрольные точки сетки, вам, как минимум, нужны functions
и variables
. Затем установите переменные по мере необходимости и, наконец, @import bootstrap. Обратите внимание, как по умолчанию! был удален как , объясненный в docs как правильный метод настройки.
/* import what we need to override */
@import "bootstrap/functions";
@import "bootstrap/variables";
/* set the overriding variables */
$grid-breakpoints: (
xxxs: 0,
xxs: 320px,
xs: 568px,
sm: 667px,
md: 768px,
lg: 992px,
xl: 1200px,
xxl: 1440px,
xxxl: 1600px
)
$container-max-widths: (
xxxs: 0,
xxs: 320px,
xs: 568px,
sm: 667px,
md: 768px,
lg: 992px,
xl: 1200px,
xxl: 1440px,
xxxl: 1600px
);
/* override the !default vars with the values we set above */
@import "bootstrap";
С помощью этого метода мы добавили новые контрольные точки сетки и обеспечили работу этих новых точек останова везде в Bootstrap, включая сетку, отзывчивые утилиты для интервала, отображения, flexbox, выравнивания, позиционирования и т. д. ...
https://www.codeply.com / go / BIgmm1XGc2
Также см .: Как продлить / изменить (настроить) Bootstrap 4 с помощью SASS Twitter Bootstrap: добавить медиа-запросы для точки xxs breakpoint
Попробуйте
Actions dragger = new Actions(driver);
WebElement draggablePartOfScrollbar = driver.findElement(By.xpath("//*[@id='jobreslist_outercontainer']/div/div[2]/div"));
// drag downwards
int numberOfPixelsToDragTheScrollbarDown = 50;
for (int i=10;i<500;i=i+numberOfPixelsToDragTheScrollbarDown){
try{
// this causes a gradual drag of the scroll bar, 10 units at a time
dragger.moveToElement(draggablePartOfScrollbar).clickAndHold().moveByOffset(0,numberOfPixelsToDragTheScrollbarDown).release().perform();
Thread.sleep(1000L);
}catch(Exception e1){}
}
// now drag opposite way (downwards)
numberOfPixelsToDragTheScrollbarDown = -50;
for (int i=500;i>10;i=i+numberOfPixelsToDragTheScrollbarDown){
// this causes a gradual drag of the scroll bar, -10 units at a time
dragger.moveToElement(draggablePartOfScrollbar).clickAndHold().moveByOffset(0,numberOfPixelsToDragTheScrollbarDown).release().perform();
Thread.sleep(1000L);
}
Вы должны добавить прокрутку на страницу, чтобы выбрать все элементы, используя Selenium.executeScript("window.scrollBy(0,450)", "")
.
Если у вас большой список, добавьте прокрутку несколько раз к выполнению. Обратите внимание, что прокрутка переместится только к определенной точке на странице (0,450).
Спасибо за ответ Рипона Аль Васима. Я сделал некоторое улучшение. из-за сетевых проблем, я повторяю три раза до цикла прерывания.
driver.get(url)
# Get scroll height
last_height = driver.execute_script("return document.body.scrollHeight")
try_times = 0
while True:
# Scroll down to bottom
driver.execute_script("window.scrollBy(0,2000)")
# Wait to load page
time.sleep(scroll_delay)
# Calculate new scroll height and compare with last scroll height
new_height = driver.execute_script("return document.body.scrollHeight")
if last_height == new_height:
try_times += 1
if try_times > 3:
try_times = 0
break
last_height = new_height
Существует много способов прокрутки вверх и вниз в Selenium Webdriver. Я всегда использую Java Script для того, чтобы сделать то же самое.
Ниже приведен код, который всегда работает для меня, если я хочу прокручивать вверх или вниз
// This will scroll page 400 pixel vertical
((JavascriptExecutor)driver).executeScript("scroll(0,400)");
Вы можете получить полный код отсюда Страница прокрутки в Selenium
Если вы хотите прокрутить элемент, то ниже фрагмент кода будет работать для вы.
je.executeScript("arguments[0].scrollIntoView(true);",element);
Вы получите полный документ здесь Прокрутите для определенного элемента
Я не хотел использовать JavaScript или любые внешние библиотеки, поэтому это было мое решение (C #):
IWebElement body = Driver.FindElement(By.TagName("body"));
IAction scrollDown = new Actions(Driver)
.MoveToElement(body, body.Size.Width - 10, 15) // position mouse over scrollbar
.ClickAndHold()
.MoveByOffset(0, 50) // scroll down
.Release()
.Build();
scrollDown.Perform();
Вы также можете легко сделать это методом расширения для прокрутки вверх или вниз любой элемент.
JavascriptExecutor jse = ((JavascriptExecutor) driver);
jse.executeScript("window.scrollTo(0, document.body.scrollHeight)");
Этот код работает для меня. Как страница, которую я тестирую, загружается при прокрутке вниз.
Прокрутка до нижней части страницы:
JavascriptExecutor js = ((JavascriptExecutor) driver);
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
Это не может быть точным ответом на ваш вопрос (с точки зрения WebDriver), но я обнаружил, что библиотека java.awt
более стабильна, чем selenium.Keys
. Таким образом, действие вниз страницы с использованием первого будет:
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_PAGE_DOWN);
robot.keyRelease(KeyEvent.VK_PAGE_DOWN);
Исполнитель Javascript всегда отлично выполняет работу:
((JavascriptExecutor) driver).executeScript("scroll(0,300)");
, где (0,300)
- горизонтальное и вертикальное расстояния соответственно. Положите свои расстояния в соответствии с вашими требованиями.
Если вы перфекционист и хотите получить точное расстояние, которое вам нравится прокручивать до первой попытки, используйте этот инструмент, MeasureIt . Это блестящее дополнение к Firefox.
JavascriptExecutor js = ((JavascriptExecutor) driver);
Прокрутка вниз:
js.executeScript("window.scrollTo(0, document.body.scrollHeight);");
Прокрутка вверх:
js.executeScript("window.scrollTo(0, -document.body.scrollHeight);");