这是我想要达到的元素:
<div class="ui-dialog-buttonpane ui-widget-content ui-helper-clearfix">
<div class="ui-dialog-buttonset">
<button style="background-color: rgb(218, 218, 218);" aria-disabled="false" role="button" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" type="button">
<span style="background-color: transparent;" class="ui-button-text">OK</span>
</button>
</div>
</div>
这是我正在使用的代码:
driver.FindElement(By.XPath("xpath=(//span[contains(@class,'ui-button-text')][contains(text(),'OK')]))")).Click();
我使用xpath使用Selenium IDE的find元素功能,它可以找到元素。
答案 0 :(得分:3)
表达式中不需要if(!empty($_POST['When'])){
$fields['When__c'] = $_POST['When'];
}
if(!empty($_POST['AvlToStart'])){
$fields['Available_to_start__c'] = $_POST['AvlToStart'];
}
部分:
xpath=
此外,我认为您可以停止使用driver.FindElement(By.XPath("//span[contains(@class,'ui-button-text')][contains(text(),'OK')])")).Click();
并检查完整的contains()
和class
值:
text()
此处driver.FindElement(By.XPath("//span[@class = 'ui-button-text' and . = 'OK'])")).Click();
引用元素的文本。
答案 1 :(得分:0)
其他解决方案是使用此xpath:
driver.FindElement(By.XPath("///div[@class='ui-dialog-buttonset']/button/span")).Click();
答案 2 :(得分:0)
如果您想要准确的解决方案: 您可以使用此:
driver.FindElement(By.Xpath("//div[@class='ui-dialog-buttonset']/descendant::span[@class='ui-button-text' and contains(text(),'OK')]/parent::button")