我在使用Apache POI时遇到excel问题.我可以阅读各行,但有时候我会想要只读一个特定的列.
因此,可以仅读取任何特定列,例如仅读取"A"列或仅读取"C"列.
我正在使用Java语言.
我使用下面的 Docker 文件创建了一个 docker 映像。它安装最新版本的 Google Chrome 和 Chrome 驱动程序。以及其他 pip 包。
Dockerfile
FROM python:3.9
# Install Chrome WebDriver
RUN CHROMEDRIVER_VERSION=`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE` && \
mkdir -p /opt/chromedriver-$CHROMEDRIVER_VERSION && \
curl -sS -o /tmp/chromedriver_linux64.zip http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip && \
unzip -qq /tmp/chromedriver_linux64.zip -d /opt/chromedriver-$CHROMEDRIVER_VERSION && \
rm /tmp/chromedriver_linux64.zip && \
chmod +x /opt/chromedriver-$CHROMEDRIVER_VERSION/chromedriver && \
ln -fs /opt/chromedriver-$CHROMEDRIVER_VERSION/chromedriver /usr/local/bin/chromedriver
# Install Google Chrome
RUN curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list …
Run Code Online (Sandbox Code Playgroud) 有时,input
元素会直观地呈现其值,但这些值不会呈现在元素 HTML 中。不作为“文本”,也不作为“值”属性。就像这里
实际上,它是一个value
属性,但它是隐藏的。
我的意思是,甚至value
属性本身的存在也是隐藏的。
我想了解为什么这些value
属性被隐藏?
任何人都可以帮助我使用Java自动使用WebDriver 向下滚动功能吗?
就我而言,一旦我垂直向下滚动鼠标,就会"Sign In"
显示(可见)雅虎邮件.
试图找到一些文本,然后右键单击该文本。该表是动态的,因此我无法假设知道要搜索的值所在的单元格位置或要单击的值。例如,我想找到一个名称,然后右键单击名称本身
右键菜单似乎被称为class = context menu,值为class = context_item(请参见附加的屏幕截图)(还包括 html)
我知道这部分有效,但它下面的其余部分有问题 - col = row.find_element(By.XPATH, '//a[contains(text() , "Luke Wilson")]')
回溯(最近一次调用):文件“C:\Users\AppData\Local\Programs\Python\Python36\ffox_Change_Create_Save_Stay_v2.py”,第 182 行,在 get_all_rows_approval() 文件“C:\Users\AppData\Local\Programs\ Python\Python36\ffox_Change_Create_Save_Stay_v2.py”,第 164 行,在 get_all_rows_approval 菜单 = col.find_element_by_class_name("context_menu") 文件“C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\web \remote\webelement.py", line 398, in find_element_by_class_name return self.find_element(by=By.CLASS_NAME, value=name) File "C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages \selenium\webdriver\remote\webelement.py",第 654 行,在 find_element {"using": by, "value": value})['value'] 文件“C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webelement.py”,第 628 行,在 _execute 中返回 self._parent.execute(command, params ) 文件“C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 320 行,在执行 self.error_handler.check_response(response) 文件中“ C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\errorhandler.py”,第 242 行,在 check_response 中引发 exception_class(message, screen, stacktrace) selenium.common。 exceptions.NoSuchElementException:消息:无法定位元素:.context_menu在 _execute 中返回 self._parent.execute(command, …
webElement.SendKeys(Keys.Control + "t");
这段代码对我不起作用。String n = Keys.chord(Keys.CONTROL, Keys.ENTER);
driver.findElement(By.id("open-tab")).sendKeys(n);
其中key.chord
不适用于 selenium C#。driver.SwitchTo().Window(driver.WindowHandles[0]);
这个也不适用于我的代码。是否有任何替代方法可用于切换选项卡。如何在“ Velocity ”中一起使用String 和 Integer 变量?
#set ($var1 = "exp"+1)
Run Code Online (Sandbox Code Playgroud)
我试了几次,但我不能。
任何帮助将不胜感激。
这是一个非常简单的问题,但令人惊讶的是我在互联网上找不到答案。我试图找到网页中存在的所有元素。我知道在硒中寻找元素你可以说:
driver.find_elements_by_tag_name()
driver.find_elements_by_class_name()
driver.find_elements_by_css_selector()
driver.find_elements_by_name()
driver.find_elements_by_id()
Run Code Online (Sandbox Code Playgroud)
等等。但我怎样才能找到所有元素呢?
我正在做 Python selenium 项目并且有一个问题
EC.presence_of_element_located
Run Code Online (Sandbox Code Playgroud)
看起来Python无法识别它。
这是我的代码:
service = Service("C:\\Users\\jjang\\.wdm\\drivers\\chromedriver\\win32\\96.0.4664.45\\chromedriver.exe")
browser = webdriver.Chrome(service=service)
browser.maximize_window()
browser.get("https://www.google.com")
actions = ActionChains(browser)
actions.send_keys(Keys.TAB * N)
actions.send_keys(Keys.ENTER)
actions.perform()
search_bar = browser.find_element(By.CLASS_NAME, "gLFyf")
search_bar.send_keys("hola")
search_bar.send_keys(Keys.ENTER)
unnecessary = WebDriverWait(browser, 5).until(EC.presence_of_element_located((By.CLASS_NAME,"VjDLd mnr-c g-blk")))
Run Code Online (Sandbox Code Playgroud)
Python 告诉我
NameError:名称“EC”未定义
为什么Python将ES识别为Name?有人可以帮助我吗?
我试图在网站上找到一个元素并获取所有元素。为此,我使用硒化物/硒。我正在寻找的元素无法由一个类定位,因此我尝试定位具有两个类(父类和子类)的元素。仅使用 Selenide,我就可以使用以下方法轻松定位元素:
SelenideElement basketIcon = $(By.className("buttons")).$(byClassName("btn-cart"))
这肯定会给我一个元素。但是我怎样才能找到一个元素数组呢?
List<SelenideElement> productName1 = WebDriverRunner.getWebDriver().findElements(By.className(""));
但它不起作用,我也尝试过:List<WebElement> productName = WebDriverRunner.getWebDriver().findElements(By.className("buttons"));
但是这里如何添加另一个类来定位元素?$(byClassName("btn-cart"))
?或者还有其他方法可以做到这一点吗?
我也尝试过使用ElementsCollection elements = WebDriverRunner.getWebDriver().findElements(By.className(""));
但它不起作用......
编辑: 我有一个名为“DriverFactory”的类,用于打开浏览器:
public static void openBrowser(String browserName, String url) throws Exception {
WebDriverManager.chromedriver().browserVersion(chromeversion).setup();
Configuration.browser = "Chrome";
Configuration.startMaximized = true;
driver.get(url);
}
Run Code Online (Sandbox Code Playgroud)
另一个类,我在其中定义定位器:
public class EE_MonitorCategoryElements extends DriverFactory {
protected static List<WebElement> productName = getWebDriver().findElements(By.id("asddsa"));
}
Run Code Online (Sandbox Code Playgroud)
和一个测试类:
@Test
public void ads() throws Exception {
DriverFactory.openBrowser("Chrome", "https://google.ge");
}
Run Code Online (Sandbox Code Playgroud)
当我使用“getWebDriver()”添加最后一个元素定位器并且我尝试运行测试时,它给了我一个错误:没有绑定测试,并且在我删除/注释 getWebDriver 行的地方,它正在工作
selenium ×8
java ×4
python ×4
apache-poi ×1
automation ×1
c# ×1
contextmenu ×1
docker ×1
eclipse ×1
excel ×1
html ×1
python-3.x ×1
scroll ×1
selenide ×1
velocity ×1
webdriver ×1
xwiki ×1