当我try 使用find_element(By.CLASS_NAME, 'classname')时,它总是返回NoSuchElementException,找不到元素. 但是,当我在同一个元素上使用ID和名称时,它起作用了!只有CLASS_NAME失败.

Here is the HTML

<input type="text" name="login" id="login_field" class="form-control input-block js-login-field" autocapitalize="off" autocorrect="off" autocomplete="username" autofocus="autofocus">

And here is the script

username1 = driver.find_element(By.CLASS_NAME,"form-control input-block js-login-field")
username2 = driver.find_element(By.ID,"login_field")
print(username1)
print(username2)

用户名%1失败,用户名%2通过.

我try 更改为css Selector:

username1 = driver.findElement(By.cssSelector("input.form-control input-block js-login-field"));

我还try 了更改语法:

username1 = driver.find_element(By.CLASS_NAME("input[class='form-control input-block js-login-field']"))

但这些都不管用.

推荐答案

Selify中的By.CLASS_NAME方法设计为使用单个类名,而不是多个类名.

元素有多个类:form-controlinput-blockjs-login-field.您应该从这些类中 Select 一个与By.CLASS_NAME一起使用.

username1 = driver.find_element(By.CLASS_NAME, "form-control")

Using 100 for a Compound Class Name

username1 = driver.find_element(By.CSS_SELECTOR, ".form-control.input-block.js-login-field")

Python相关问答推荐

在编写要Excel的数据透视框架时修复标题行

更改Seaborn条形图中的x轴日期时间限制

如何根据条件在多指标框架上进行groupby

如何使用SubProcess/Shell从Python脚本中调用具有几个带有html标签的参数的Perl脚本?

使用polars .滤镜进行切片速度比pandas .loc慢

如何使用pandasDataFrames和scipy高度优化相关性计算

ModuleNotFound错误:没有名为flags.State的模块; flags不是包

查找两极rame中组之间的所有差异

用NumPy优化a[i] = a[i-1]*b[i] + c[i]的迭代计算

Python键入协议默认值

从groupby执行计算后创建新的子框架

海上重叠直方图

所有列的滚动标准差,忽略NaN

为什么np. exp(1000)给出溢出警告,而np. exp(—100000)没有给出下溢警告?

如何使用Numpy. stracards重新编写滚动和?

dask无groupby(ddf. agg([min,max])?''''

从列表中获取n个元素,其中list [i][0]== value''

用两个字符串构建回文

在numpy数组中寻找楼梯状 struct

BeautifulSoup-Screper有时运行得很好,很健壮--但有时它失败了::可能这里需要一些更多的异常处理?