我的问题是:我有两个标签。
<div class='twoLink'
<a class='link' <div> microsoft word </div></a>
<a class='link' <div> word </div></a>
</div>
我的目标是单击只包含单词“word”而不包含“microsoft word”的标签。
所以我做了这个:
element = 'word'
linkWord = WebDriverWait(driver, timeout=5).until(EC.element_to_be_clickable(
(By.XPATH,"//a[contains(@class, 'link')]/div[contains(text(), '"+ element +"')]")))
driver.execute_script("arguments[0].click();", linkWord )
但是这种方法让我点击包含“单词”的标签,而不等于“单词”,所以我点击的标签是第一个,而不是我想要的第二个。
我必须找到一种方法来检查等式,但我没有找到。
我能怎么办?
这里有一种方法,你可以断言这个词是否存在。我注意到您使用的是contains,因为元素DOM中的单词word
前面有一个空格,但是contains
正在获取microsoft word
,因为它包含word
。所以,下面的方法是有效的。为了清楚起见,我在条件语句中添加了断言,但实际上可以将其缩减为一行assert x=='word',“not the right word”
x = driver.find_element(By.XPATH, "//div[@class='twoLink']//following-sibling::a").text
print(x)
if x == 'word':
print("True")
assert True
else:
print("False")
assert False
输出:
word
True
Process finished with exit code 0
这也起作用:
//a[@class='link' and text()=' word ']
还有一个策略是使用规范化
。如果你想使用它,请研究一下。这是标准化的空间定位器。这将为您找到您的元素:
//a[normalize-space(text()='word')]
//a[@class='link']/div[text()='word']
这简直是
f"//a[@class='link']/div[text()='{element}']"
删除contains()
,然后使用text()
比较
我正在寻找一些关于如何编写Xpath查询以验证特定复选框是否被选中的指导(嵌套在panel-body div中的div是复选框)。我试图做的是确保包含文本“evaluations”的相应标签的checkbox div包含类“Checked”。以下是我的HTML: 下面是我的XPath: 问题是,即使该框未选中,我的测试用例仍然通过,这表明我的xpath正在抓取其他元素。panel-body div
我使用PDFBox 1.8.8并尝试将新文本添加到现有的pdf文件中,问题是我添加的文本正在寻找此特定pdf的压缩 原始pdf(我认为这个文件是问题的根源) (它正在为其他PDF工作)。 问题的图像与解释 它最初并没有显示出来,但我修复了这个问题(设置字体显示模式) 我在使用pdf矩阵,检查了几乎所有的东西。。。我不知道该怎么解决这个问题。。。 问题: 1)是否有任何方法来强制pdfbox使用正常
我对Xpath有问题。我试图查找div第一次迭代的所有文本节点,但排除其中包含关键字的节点。 一个简单的例子: 我想从第一个div“blabla”中获取所有文本,但排除所有包含“bananas”一词的段落。在这种情况下,我只想要“我也喜欢苹果”。段落数和单词“bananas”的位置是随机的。 以下是我尝试过的: 我不知道为什么这样不行。如果有人有想法,我们将不胜感激!
我有一个按钮: null null 但是,当我点击它的时候,这是永远不会打印任何东西的?您可以在这张图片中看到,它正在找到这些元素,但在单击时没有触发。
任何人都可以知道如何做到这一点吗? 我想这是一个编辑文本,但是我怎么能同时放标签和文本呢? 先谢谢你
我的问题是,我有一个函数可以调整一个div的字体大小,但是这个div同时包含文本和HTML,所以当函数运行时,嵌套的HTML大小也会改变,有没有一种方法,我可以只改变文本的大小,而不触动HTML?非常感谢任何帮助。代码为javascript