我有一个按钮,我可以成功找到它并捕获它的文本。但是点击不起作用。有人可以帮忙。
<button class="yellow labeled icon button no-margin" type="button">
<div class="icon my_class"></div>
<span class="ttt">Add new student</span>
</button>
这有效:
return driver.find_element(By.XPATH, 'xpath').text
但这不起作用,“也不例外”。代码通过,但点击未完成。
driver.find_element(By.XPATH, 'xpath').click()
答案 0 :(得分:0)
粗略调用-
和.text
与 WebElement 的两种不同状态有关。
您的代码块click()
成功,因为当您留意时,添加新学生会在 HTML DOM 中呈现。这并不能保证 WebElement 在那时也可交互。工作中有 JavaScript / Ajax 可能会在那个时间点呈现return driver.find_element(By.XPATH, 'xpath').text
。
值得一提的是,文字添加新学生的呈现类似于text_to_be_present_in_element
的expected_conditions子句,其中互动性(即可点击性)类似于element_to_be_clickable
正如您所提到的那样,它是基于 AngularJS 的网站/元素,并且点击没有被执行,您必须将WebDriverWait与expected_conditions子句一起设置为{{ 3}}如下:
button
答案 1 :(得分:0)
您可以尝试点击javascript:
element = driver.find_element(By.XPATH, 'xpath')
driver.execute_script("arguments[0].click();", element)